Tensorflow中的Fetch与Feed

作者 : 开心源码 本文共1039个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共148人阅读

占位符(placeholder)

当我们构建一个模型的时候,有时候我们需要在运行时候输入少量初始数据,这个时候定义模型数据输入在tensorflow中就是用placeholder(占位符)来完成。
使用以下代码来定义占位符:

import tensorflow as tfa = tf.placeholder(tf.float32)b = tf.placeholder(tf.float32)c = tf.add(a,b)

Feed

当我们需要执行得到c的运行结果时候我们就需要在会话运行时候,通过feed来插入a与b对应的值:

with tf.Session() as sess:    result = sess.run(c, feed_dict={a:[3.], b:[4.]})#使用字典的形式赋值    print(result)

运行结果

Fetch

前面提到的sess.run()方法,其实就是fetch。

with tf.Session() as sess:    sess.run(init)    print(state)

实例:建立一个简单的线性回归模型

先看代码:

import tensorflow as tfimport numpy as np #使用numpy生成100个随机点x = np.random.rand(100)y_data = 0.1 * x + 0.2#构造一个线性回归模型b = tf.Variable(0.)k = tf.Variable(0.)y = k * x + b #回归拟合y_data#损失函数loss = tf.reduce_mean(tf.square(y_data - y))#计算y与y_data的差值#使用梯度下降法来进行训练的优化器optimizer = tf.train.GradientDescentOptimizer(0.2)#最小化损失函数train = optimizer.minimize(loss)#loss越小,b和k越接近0.1和0.2#初始化init = tf.global_variables_initializer()#runwith tf.Session() as sess:    sess.run(init)    for step in range(201): #训练5次        sess.run(train)        if step%20 == 0:#每20次输出一次k和b            print(sess.run([k,b]))

算法思路:随机生成100个随机数,带入一次函数y=k0.1x+0.2。使用tf构造回归函数y=kx+b拟合这条直线。随着训练次数的添加,k和b越接近真实值。
执行结果:

运行结果

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Tensorflow中的Fetch与Feed

发表回复