线程池C++版本
线程池C++版本C++版本的线程池,相较于之前写的C版本的线程池,简洁许多,因为对于任务队列,C++中有容器可以使用,不用自己设计队列,并且对队列的节点进行增删擦偶哦;此外C++中有析构函数,在程序结束之后,会自动执行析构函数,可以将资源回收等操作放到析构函数中
一、线程池C++实现1.头文件pthreadpool.h
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071#pragma once // 防止同一个文件被多次包含#include <thread>#include <queue>/*********************************任务队列/任务***************************************/using callback = void (*)(void *); // callback ...
Tonic.utils.plot.grid()
Tonic.utils.plot.grid()将事件可视化,绘制成帧
函数链接
一、函数原型函数作用:将事件累积成等于轴的乘积的帧,以供视觉检查
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293import numpy as npimport tonic.transforms as transformsdef plot_event_grid(events, axis_array=(1, 3), plot_frame_number=False): """Plot events accumulated as frames equal to the product of axes for visual inspection. Parameter ...
Tonic.Transforms.ToFrame()
Tonic.Transforms.ToFrame()Tonic是一个方便下载、操作和加载基于事件/基于峰值的数据的工具。它就像PyTorch Vision,但用于神经形态数据!
函数链接
事件相机的数据处理:该博客中介绍了如何对事件数据进行可视化
函数原型:
函数作用:通过一定的方法,将事件流可视化,得到帧
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687@dataclass(frozen=True)class ToFrame: """Accumulate events to frames by slicing along constant time (time_window), constant number of events (spike_cou ...
使用Tonic加载标准本地的事件数据
使用Tonic加载标准本地的事件数据os.walk()
callable and optional
numpy数组的保存:二进制文件(bin or npy)
Tonic帮助文档:How do I wrap my own recordings?
如果您在磁盘上有自己的记录,并且希望使用Tonic进行快速数据加载和应用转换,那么您可以将它们包装在一个自定义类中。最简单的选择是使用torchvision DatasetFolder类。如果这不适用于您的情况,您可以编写自己的类,在其中提供init、getitem和len方法的最小集合,然后就可以开始了。这个笔记是关于从本地numpy文件读取事件记录的模板类。我们将从创建一些虚拟文件开始
1.模拟创建随机的事件流数据程序通过np.random.rand(n_events)创建n_events个服从0-1均匀分布的随机样本值,并将其存储在numpy数组中,通过sensor_size[index]确定事件四元组中每一个元素的范围大小。dtype中确定了四元组中每个元素的数据类型为int
1234567891011121314151617181 ...
使用numpy创建三层神经网络
numpy网络编程本文参考于:书本《Make Your Own Neural Network》 中文《Python神经网络编程》
书中源代码
本文代码托管github
通过此次实践对于神经网络的认识更加深刻,通过数学推导到代码实践让自己有了比较大的收获
一、数学推导构造三层神经网络
1.前向传播
2.反向传播
3.更新权重
二、代码实现1.网络实现以及训练过程(Network.py)该部分对上述数学推导过程进行代码实现,构建一个三层的神经网络,其中隐含层的节点self.hnodes可以自己进行设置,因为网络主要使用的MNIST手写数字数据集,输入为(28,28)的灰度图片,但是要对其进行展平,变为784个输入数据;输出为10个节点,因为预测结果有0到9 十种可能
网络实现:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273""& ...