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中的正则表达式的用法
Apr 09 Python
Python爬虫模拟登录带验证码网站
Jan 22 Python
Python父目录、子目录的相互调用方法
Feb 16 Python
运用Python的webbrowser实现定时打开特定网页
Feb 21 Python
Python使用pyserial进行串口通信的实例
Jul 02 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
Python assert关键字原理及实例解析
Dec 13 Python
Python list运算操作代码实例解析
Jan 20 Python
详解python 破解网站反爬虫的两种简单方法
Feb 09 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
Python游戏开发实例之graphics实现AI五子棋
Nov 01 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 获取可变函数参数的函数
2009/08/26 PHP
解析thinkphp的左右值无限分类
2013/06/20 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
Javascript Throttle & Debounce应用介绍
2013/03/19 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
js style.display=block显示布局错乱问题的解决方法
2016/09/21 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
token 机制和实现方式
2020/12/15 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
python模拟鼠标拖动操作的方法
2015/03/11 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
wxPython多个窗口的基本结构
2019/11/19 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
国际书籍零售商:Wordery
2017/11/01 全球购物
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
2016年全国爱眼日宣传教育活动总结
2016/04/05 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
mysq启动失败问题及场景分析
2021/07/15 MySQL
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android