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中for循环控制语句用法实例
Jun 02 Python
Python爬取国外天气预报网站的方法
Jul 10 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
Dec 14 Python
Flask框架Flask-Login用法分析
Jul 23 Python
Pycharm新手教程(只需要看这篇就够了)
Jun 18 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
这可能是最好玩的python GUI入门实例(推荐)
Jul 19 Python
详解Django将秒转换为xx天xx时xx分
Sep 27 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
Apr 26 Python
Django中Q查询及Q()对象 F查询及F()对象用法
Jul 09 Python
解决python 虚拟环境删除包无法加载的问题
Jul 13 Python
python3处理word文档实例分析
Dec 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
ThinkPHP3.1新特性之多层MVC的支持
2014/06/19 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
微信小程序一周时间表功能实现
2019/10/17 Javascript
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
Python实现处理管道的方法
2015/06/04 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
python list是否包含另一个list所有元素的实例
2018/05/04 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
Python基本socket通信控制操作示例
2019/01/30 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
见习期自我鉴定
2014/01/31 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
2014年党课学习材料
2014/05/11 职场文书
js实现上传图片到服务器
2021/04/11 Javascript