建设图片展示网站,林萌荣温州市网页制作,网站meta 优化建议,苏州网站建设优化过哦目录
一、常规神经网络模型
二、TensorFlow实现前向传播步骤
1、读取数据集
2、batch划分
3、根据神经网络每一层的神经元个数来初始化参数w,b
4、进行每一层输入输出的计算
5、对每一层的输出进行非线性relu函数变换
6、计算一个batch训练后的误差loss
7、计算每一次…目录
一、常规神经网络模型
二、TensorFlow实现前向传播步骤
1、读取数据集
2、batch划分
3、根据神经网络每一层的神经元个数来初始化参数w,b
4、进行每一层输入输出的计算
5、对每一层的输出进行非线性relu函数变换
6、计算一个batch训练后的误差loss
7、计算每一次loss对参数的梯度
8、根据梯度进行参数的迭代
三、常见错误纠错
1、tf.Variable()忘记使用——将需要求导的参数进行该操作系统会自动记录导数的变化
2、迭代后的参数会自动变成tensor而不是variable进而报错
3、梯度爆炸的解决——将初始化参数时的方差改小
4、几个循环 一、常规神经网络模型 二、TensorFlow实现前向传播步骤
这里以UCI中的手写数字集作为数据训练集假设神经网络层数有4层
输入层1
隐层2
输出层1
按照batch的方式进行训练一个batch含有128组数据
一个batch在神经网络中训练的shape变换如下
x【128,28,28】reshape输入【128,784】隐层1【128,256】隐层2【128,128】输出out【128,10】
y【128】one_hot【128,10】
一个batch的loss:【128,10】
loss (y-out)^2
1、读取数据集 2、batch划分
因为minis数据集数据量庞大如果一个一个样本进行训练会非常耗时因此将一定数量的样本组合成一个batch每次对一个batch进行训练这样会提高训练效率又不会影响训练出来神经网络的准确性 3、根据神经网络每一层的神经元个数来初始化参数w,b
每一层的w的个数为上一层神经元数*下一层神经元数
每一层的b的个数为当前层的神经元个数 4、进行每一层输入输出的计算
5、对每一层的输出进行非线性relu函数变换 6、计算一个batch训练后的误差loss 7、计算每一次loss对参数的梯度 利用TensorFlow求解loss对各个参数进行求导时必须将输入输出的求解以及loss的求解放在上图红色框的内部
8、根据梯度进行参数的迭代 三、常见错误纠错
1、tf.Variable()忘记使用——将需要求导的参数进行该操作系统会自动记录导数的变化 2、迭代后的参数会自动变成tensor而不是variable进而报错
这样的话我们就需要利用一个函数使得迭代变量参数的值发生改变但是对象不会发生改变 3、梯度爆炸的解决——将初始化参数时的方差改小
梯度爆炸就是指梯度突然非常大导致后面进行后向传播时loss不断地增大得不到最优参数解 4、几个循环