tensorflow开发的基本步骤

(一)TensorFlow开发的基本步骤

(1)定义TensorFlow输入节点。

(1.1)定义输入节点的方法

● 通过占位符定义:一般使用这种方式。
X = tf.placeholder(“float”)
Y = tf.placeholder(“float”)

● 通过字典类型定义:一般用于输入比较多的情况。
inputdict={
“X” :tf.placeholder(“float”)
“Y” : tf.placeholder(“float”)
}

● 直接定义:一般很少使用。
tf.Variable(tf.zeros([1]),“bais”)

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

学习参数的定义与输入的定义很像,分为直接定义字典定义两部分。这两种都是常见的使用方式,只不过在深层神经网络里由于参数过多,普遍都会使用第二种情况。
直接定义

    # 模型参数
    W = tf.Variable(tf.random_normal([1]), name="weight")
    b = tf.Variable(tf.zeros([1]), name="bias")

(3)定义“运算”

定义“运算”的过程是建立模型的核心过程,直接决定了模型的拟合效果.运算中有正向传播模型多层神经网络、卷积神经网、循环神经网络及更深层的GoogLeNet、Resnet等

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

在有了正向结构和损失函数后,就是通过优化函数来优化学习参数。
反向传播过程,就是沿着正向传播的结构向相反方向将误差传递过去。这里面涉及的技术比较多,如L1、L2正则化、冲量调节、学习率自适应、adm随机梯度下降算法等,每一个技巧都代表一个时代。

(5)初始化所有变量

     init = tf.global_variables_initializer()
     # 启动Session
     with tf.Session() as sess:
         sess.run(init)

注意: 使用tf.global_variables_initializer函数初始化所有变量的步骤,必须在所有变量和OP定义完成之后。这样才能保证定义的内容有效,否则,初始化之后定义的变量和OP都无法使用session中的run来进行算值。

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

在迭代训练环节,都是需要通过建立一个session来完成的,常用的是使用with语法,可以在session结束后自行关闭.

    with tf.Session() as sess:

(7)测试模型

测试模型部分已经不是神经网络的核心环节了,同归对评估节点的输出,得到模型的准确率(或错误率)从而来描述模型的好坏.

(8)使用模型

一般会把生成的模型保存起来,再通过载入已有的模型来进行实际的使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值