Tensorflow开发基本流程:
(1)定义TensorFlow输入节点:
目录
a.通过占位符定义:
使用tf.placeholder函数:
X = tf.placeholder("float")
Y = tf.placeholder("float")
b.通过字典类型定义:
与a.方法比较类似,只不过是堆叠到一起。
inputdict = {
'x': tf.placeholder("float"),
'y': tf.placeholder("float")
}
c.直接定义法:
很少用
(2)定义“学习参数”变量
类似于输入的定义,分为a.直接定义和b.字典定义。由于深度神经网络中,参数过多,普遍使用b.方法。
a.直接定义:
W = tf.Variable(tf.random.normal([1]), name="weight")
b = tf.Variable(tf.zeros([1]), name="biases")
b.字典定义
与直接定义相比,字典定义只不过是堆叠到了一起
paradict = {
'w': tf.Variable(tf.random_normal([1]))
'b': tf.Variable(tf.zeros([1]))
}
(3)定义“运算”
建模的核心过程,决定模型拟合效果。
a.正向传播模型
单神经元、多层神经网络、卷积神经网络、循环神经网络等,均是由神经元以不同的组合方式组成的网络结构。
#----------------------------------正向搭建模型----------------------------------
#创建模型
#占位符
X = tf.placeholder("float")
Y = tf.placeholder("float")
#模型参数权重和偏执
W = tf.Variable(tf.random.normal([1]), name="weight")
b = tf.Variable(tf.zeros([1]), name="biases")
#向前结构
z = tf.multiply(X, W)+b
b.定义损失函数
损失函数主要是定义“输出值”和目标值 之间的误差,是配合反向传播使用。为在反向传播时找到最小值,损失函数必须可导。
只需记住几种常用的损失函数,不需要掌握太多细节。
TensorFlow损失函数专题 见此链接(https://blog.csdn.net/marsjhao/article/details/72630147)
(4)优化函数、优化目标
在定义好正向传播函数和损失函数后,通过优化函数和优化目标对学习参数进行优化,此过程在反向传播中进行。
只需记住几种常用方法即可。链接(https://blog.csdn.net/uestc_c2_403/article/details/72190345)
(5)初始化所有变量
只有一句代码,但很重要。
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
必须在所有变量和OP定义之后进行!
(6)迭代更新参数到最优解
在迭代训练环节,需要通过建立一个session来完成,常用with语法,可以在session结束后自动关闭。
with tf.Session() as sess:
(7)测试模型
并非神经网络的核心环节,并没有太多技术含量。