Tensorflow开发基本流程:

Tensorflow开发基本流程:

(1)定义TensorFlow输入节点:

 

目录

Tensorflow开发基本流程:

(1)定义TensorFlow输入节点:

a.通过占位符定义:

b.通过字典类型定义:

c.直接定义法:

(2)定义“学习参数”变量

a.直接定义:

b.字典定义

(3)定义“运算”

a.正向传播模型

 b.定义损失函数

(4)优化函数、优化目标

(5)初始化所有变量

(6)迭代更新参数到最优解

(7)测试模型

(8)使用模型


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)测试模型

并非神经网络的核心环节,并没有太多技术含量。

(8)使用模型

参考文献:深度学习之tenforflow入门、原理与进阶实战

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值