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