该系列文章主要用于Tensorflow中我模糊或顿悟的知识点。
1.使用占位符来定义输入,变量定义模型参数权重。
在模型不断训练时需对参数权重进行迭代,所以使用变量进行存储,且变量的状态由Session对象进行管理,不同的session对象各自维护着不同的Variable对象值。
x=tf.placeholder(tf.float32,[None,784])#784个节点的输入
y=tf.placeholder(tf.float32,[None,10])#10个节点的输出
Session中使用时需要通过feed_dict传入实际值
sess.run(train,feed_dict={x:train_x,y:train_y})
2.定义神经网络全连接层权重一般使用tf.truncated_normal()函数的原因
tf.truncated_normal()不会产生任何偏离均值超过2倍标准差的值,所以不会产生有一两个张量与其他张量明显不同。
3.模型的保存与使用
保存模型的主要目的是防止突然断电等问题导致模型训练终止而训练数据丢失的问题。
在模型每次训练前先对模型是否训练过进行判断,如果未含有存储文件则从头训练,含有则继续训练。
4.线性回归
1.线性函数的矩阵表达方式:
Y = XW+b
注:采用矩阵形式可一次性提供多个样本,每行对应一个样本,一轮可训练所有的样本。
5.激活函数可用的条件
(1)单调的
(2)可微分的
可利用梯度下降法找到局部最优解