简述流程:
1.Load and normalize data;
2.Define Neural Network;
3.Define Loss function;
4.Train network on training data;
5.Test network on test data.
一、加载数据并对数据进行归一化
Q:为什么要对数据进行归一化?
A:不同特征之间的比例不一致,想要将特征都调到同一尺度下,所以要进行归一化预 处理。
Q:如何进行归一化?
A:1.找出特征值中的最大值max,给所有的数据比上这个max,将数据调整到[0,1]之间
2.每一个数据减去最大值减去最小值之后的结果,用数据一比
3.求出数据的均值以及标准差,数据减去均值比上标准差
二、定义神经网络
输入:一张图片32x32
第一次:1个通道与6卷积核做运算,卷积核大小为5x5
第二次:做一次运算就要对应得做一次非线性变换,ReLu
第三次:池化运算,2x2,步长为2
第四次:6个通道与16个卷积核做运算
第五次:非线性变换
第六次:池化运算
第七次:将做好运算的矩阵拉成一个向量(view),大小为16x5x5
第八次:做全链接运算,由16x5x5个结点变为120个结点
第九次:非线性变换,120变为84
第十次:再做运算
第十一次:非线性变换,84变为10个输出结果
第十二次:运算
第十三次:转为概率,将预测结果输出
- 定义损失函数
参数优化,拟合模型
前向传播forward
反向传播backward
input通过神经网络net之后得到一个output,forward(output,ground truth)得到一个loss值,经损失函数backward(output,ground truth)得到output的梯度,再到net的backward(output的梯度,input)得到输入的梯度,来不断迭代的调整参数。
- 训练网络
- 预测