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+PIL实现支付宝AR红包
Feb 09 Python
分享Pycharm中一些不为人知的技巧
Apr 03 Python
Python中一些不为人知的基础技巧总结
May 19 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
Django 重写用户模型的实现
Jul 29 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
python爬虫用mongodb的理由
Jul 28 Python
如何通过python检查文件是否被占用
Dec 18 Python
教你用python实现12306余票查询
Jun 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
PHP实现用户认证及管理完全源码
2007/03/11 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
详解Python的单元测试
2015/04/28 Python
快速入门python学习笔记
2017/12/06 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
python如何基于redis实现ip代理池
2020/01/17 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
Nike澳大利亚官网:Nike.com (AU)
2019/06/03 全球购物
招聘单位介绍信
2014/01/14 职场文书
食堂个人先进事迹
2014/01/22 职场文书
大学应届生的自我评价
2014/03/06 职场文书
调研汇报材料范文
2014/08/17 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
运动会报道稿大全
2015/07/23 职场文书
详解Go与PHP的语法对比
2021/05/29 PHP