仅使用numpy从头构建神经网络, 包括如下内容(持续更新中....)
-
网络中梯度反向传播公式推导
-
层:FC层,卷积层,池化层,Flatten
-
激活函数: ReLU、LeakyReLU、PReLU、ELU、SELU
-
损失函数:均方差、交叉熵
-
模型的保存、部署
-
案例学习:线性回归、图像分类
-
迁移学习、模型精调
-
进阶:RNN、LSTM、GRU、BN
[TOC]
环境:python 3.6.x
依赖:numpy>=1.15.0、Cython、jupyter
a) 下载
git clone https://github.com/yizt/numpy_neuron_network
b) 编译nn/clayers.pyx
cd numpy_neuron_network
python setup.py build_ext -i
c) 启动工程,所有的notebook都可以直接运行
jupyter notebook --allow-root --ip 0.0.0.0
0_2_1-卷积层的反向传播-单通道、无padding、步长1 、csdn地址
0_2_2-卷积层的反向传播-多通道、无padding、步长1 、csdn地址
0_2_3-卷积层的反向传播-多通道、无padding、步长不为1 、csdn地址
0_2_4-卷积层的反向传播-多通道、有padding、步长不为1 、csdn地址
0_2_5-池化层的反向传播-MaxPooling、AveragePooling、GlobalAveragePooling、GlobalMaxPooling 、csdn地址
0_3-激活函数的反向传播-ReLU、LeakyReLU、PReLU、ELU、SELU 、csdn地址
0_4-优化方法-SGD、AdaGrad、RMSProp、Adadelta、Adam 、csdn地址
1_1_2-全连接神经网络做mnist手写数字识别 、csdn地址
2_3-numpy-cnn-mnist手写数字识别 、csdn地址
2_4-对抗神经网络 、csdn地址
5-1-RNN反向传播
5-2-LSTM反向传播
5-3-GRU反向传播
5-4-RNN、LSTM、GRU实现
5-5-案例-lstm连续文字识别
6-1-Batch Normalization反向传播
6-2-Batch Normalization实现