Tensorflow中的placeholder和feed_dict的使用


Posted in Python onJuly 09, 2018

TensorFlow 支持占位符placeholder。占位符并没有初始值,它只会分配必要的内存。在会话中,占位符可以使用 feed_dict 馈送数据。

feed_dict是一个字典,在字典中需要给出每一个用到的占位符的取值。

在训练神经网络时需要每次提供一个批量的训练样本,如果每次迭代选取的数据要通过常量表示,那么TensorFlow 的计算图会非常大。因为每增加一个常量,TensorFlow 都会在计算图中增加一个结点。所以说拥有几百万次迭代的神经网络会拥有极其庞大的计算图,而占位符却可以解决这一点,它只会拥有占位符这一个结点。

placeholder函数的定义为

tf.placeholder(dtype, shape=None, name=None)

参数:

    dtype:数据类型。常用的是tf.int32,tf.float32,tf.float64,tf.string等数据类型。
    shape:数据形状。默认是None,也就是一维值。
           也可以表示多维,比如要表示2行3列则应设为[2, 3]。
           形如[None, 3]表示列是3,行不定。
    name:名称。

返回:Tensor类型

例1

import tensorflow as tf

x = tf.placeholder(tf.string)

with tf.Session() as sess:
  output = sess.run(x, feed_dict={x: 'Hello World'})
  print(output)

运行结果:Hello World

例2

import tensorflow as tf

x = tf.placeholder(tf.string)
y = tf.placeholder(tf.int32)
z = tf.placeholder(tf.float32)

with tf.Session() as sess:
  output = sess.run(x, feed_dict = {x :'Hello World', y:123, z:45.67})
  print(output)
  output = sess.run(y, feed_dict = {x :'Hello World', y:123, z:45.67})
  print(output)
  output = sess.run(z, feed_dict = {x :'Hello World', y:123, z:45.67})
print(output)

运行结果:

Hello Word
123
45.66999816894531

例3:

import tensorflow as tf
import numpy as np

x = tf.placeholder(tf.float32, shape=(3, 3)) 
y = tf.matmul(x, x) 
 
with tf.Session() as sess:  
  rand_array = np.random.rand(3, 3)
print(sess.run(y, feed_dict = {x: rand_array}))

运行结果:

[[0.62475741  0.40487182  0.5968855 ]
 [0.17491265  0.08546661  0.23616122]
 [0.53931886  0.24997233  0.56168258]]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之有点简约的元组
Sep 24 Python
Python的__builtin__模块中的一些要点知识
May 02 Python
Python实现简单的文件传输与MySQL备份的脚本分享
Jan 03 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
Oct 29 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
500行Python代码打造刷脸考勤系统
Jun 03 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
Dec 09 Python
构建高效的python requests长连接池详解
May 02 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
python中Array和DataFrame相互转换的实例讲解
Feb 03 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 #Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 #Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 #Python
将tensorflow的ckpt模型存储为npy的实例
Jul 09 #Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 #Python
利用Python如何生成便签图片详解
Jul 09 #Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 #Python
You might like
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
2012/08/01 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
python实现简单文件读写函数
2021/02/25 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
乡村文明行动实施方案
2014/03/29 职场文书
青年文明号服务承诺
2014/03/31 职场文书
民族精神月活动总结
2014/08/28 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
企业安全生产检查制度
2015/08/06 职场文书
聘任书范文大全
2015/09/21 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android