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每次处理固定个数的字符的方法总结
Jan 29 Python
Python中常见的异常总结
Feb 20 Python
Python简单实现查找一个字符串中最长不重复子串的方法
Mar 26 Python
windows下安装Python的XlsxWriter模块方法
May 03 Python
python递归实现快速排序
Aug 18 Python
对Python信号处理模块signal详解
Jan 09 Python
python 利用pyttsx3文字转语音过程详解
Sep 25 Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 Python
Django使用rest_framework写出API
May 21 Python
对Pytorch 中的contiguous理解说明
Mar 03 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 Python
Python循环之while无限迭代
Apr 30 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
我的论坛源代码(一)
2006/10/09 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
js函数获取html中className所在的内容并去除标签
2013/09/08 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
javascript遍历json对象的key和任意js对象属性实例
2017/03/09 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
介绍一下OSI七层模型
2012/07/03 面试题
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
心得体会怎么写
2013/12/30 职场文书
大学生军训广播稿
2014/01/24 职场文书
保密协议书范本
2014/04/22 职场文书
出国留学计划书
2014/04/27 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
2016高考寄语集锦
2015/12/04 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python