对tensorflow中的tensor、placeholder及feed_dict的理解
以前不知道tf.placeholder的feed_dict格式要求,以为随便是什么格式都可以,直到自己在做测试的时候出现以下错误才知道tf.placeholder 的feed_dict填充内容不可以是tensor格式的,对自己来说反而方便很多。
TypeError: The value of a feed cannot be a tf.Tensor object. Acceptable feed values include Python scalars, strings, lists, numpy ndarrays, or TensorHandles.
placeholder的作用:1)占位符作用,为待处理数据生成tensor对象,在未来的graph中占据一席之地,但这些tensor只有格式和shape,没有实际内容。
2)placeholder与feed_dict结合的另外一个潜在作用是,将numpy等格式的输入数据转换成tensor需要的格式,方便在tensorflow中流动。
自己对tensorflow的一些理解:
1)tensorflow中的tensor不是数学意义上的张量,数学意义上的张量是实实在在的数据,tensorflow中的tensor的实际意义是操作(operation,op)或者函数。如:
y = f(x)
z=g(y)
则:z=g(f(x))
在传统的数学意义上,张量对应的是实实在在的数据x,y,z,
在tenforflow中,tensor的意义是操作,是函数,即tf.tensor对应的是 f(),g(),g(f()),是一种映射关系,没有、也不代表真实数据
因此,在获取张量的值的时候需要用sess.run(tensor),因为,tensor仅仅代表映射关系,如果不执行这个映射,就不会有映射的结果输出。
2)tensorflow中的graph实际上是一个映射关系树,graph上的每个节点可以看作是基本映射关系的组合,但仍旧是映射关系。
可以把tensorflow中的graph比作一个水暖的暖气系统。
每个暖气片可以看作tensor,该tensor的作用是散热。
暖气片下方有个放水的水龙头,代表tensorflow中的 sess.run()功能,执行sess.run()相当于打开水龙头,得到暖气系统流经该暖气片之后的水。
tensorflow的placeholder可以看作暖气系统的加水处,水是输入数据。
如果不加水,整个暖气系统也是完整的,但不能起到任何作用。
加水之后,水就可以流到各个可以到达的张量处,但要想得到张量中的数据,需要打开它的水龙头,即对该张量执行sess.run()
tensorflow的每个节点,可以看作一系列暖气片的串并联等方式的组合,最后给出一个水龙头。即,每个暖气片都有一个自己的水龙头,每个暖气片组有再添加一个总的与主干道接通的水龙头。
所以,要想从tensorflow中的某个张量处得到水,首先需要在注水处添上水,然后需要打开对应暖气片或暖气片组的水龙头。
3)要想得到映射关系的结果,首先需要填入输入数据(feed_dict),然后需要驱动该映射的执行(sess.run())
前程任重而道远,自己虽然很水,还需脚踏实地力前行。
文章原创,如有不当,欢迎拍砖指正,如需转载,请注明出处!https://blog.csdn.net/Strive_For_Future/article/details/82463923
对tensorflow中的tensor、placeholder及feed_dict的理解相关推荐
- 5个简单步骤掌握TensorFlow中的Tensor
在这篇文章中,我们将深入研究Tensorflow Tensor的实现细节.我们将在以下五个简单步骤中介绍与Tensorflow的Tensor中相关的所有主题: 第一步:张量的定义→什么是张量? 第二步 ...
- 如何保存Tensorflow中的Tensor参数,保存训练中的中间参数,存储卷积层的数据
在自己构建的卷积神经时,我想把卷积层的数据提取出来,但是这些数据是Tensor类型的 网上几乎找不到怎么存储的例子,然后被我发下了一下解决办法 https://stackoverflow.com/qu ...
- tensorflow中对lstm及双向lstm的理解
双向RNN(LSTM)的实现参考: https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_Neural ...
- TensorFlow 中文文档 介绍
介绍 本章的目的是让你了解和运行 TensorFlow 在开始之前, 先看一段使用 Python API 撰写的 TensorFlow 示例代码, 对将要学习的内容有初步的印象. 这段很短的 Pyth ...
- tensorflow中的正则化函数在_『TensorFlow』正则化添加方法整理
一.基础正则化函数 tf.contrib.layers.l1_regularizer(scale, scope=None) 返回一个用来执行L1正则化的函数,函数的签名是func(weights). ...
- Tensorflow 中添加正则化项
为防止网络过拟合,在损失函数上增加一个网络参数的正则化项是一个常用方法,下面介绍如何在Tensorflow中添加正则化项. tensorflow中对参数使用正则项分为两步: step1: 创建一个正则 ...
- Tensorflow中placeholder传入值与feed_dict喂食器的联系与用法
1.placeholder传入值 可以理解为提前占据一个存储空间,比如说你在一个城市中心买了一套房子,这个房子你也不知道是用来放货物还是用来住人的,但是你可以提前将这栋房子买下来,等以后再说以后的事情 ...
- tensorflow中的placeholder()
tensorflow 中在运行时动态设置某个变量的值,先使用placeholder占位.运行时动态给占位符"喂"数据. 用tf.placeholder占位 import tenso ...
- TensorFlow中Session.run和Tensor.eval的区别
之前在TensorFlow中运行代码时,在会话中会需要运行节点,会碰到两种方式:Session.run()和Tensor.eval(),刚开始不太懂这两者之间的差异,最后通过查找官方文档和一些资料了解 ...
最新文章
- 王甲佳全息营销系列03-离散集聚式地方机构建设与全息营销活动设计实践
- 什么是schema?
- c++对vector中的元素进行随机排序
- arrive get
- 【原创】“三次握手,四次挥手”你真的懂吗?
- html表单action属性值,HTML中的form表单中的action属性
- osgearth_annotation示例
- php如何删除服务器图片,php如何删除服务器文件
- Selinux学习笔记----术语
- 计算机底部怎么不显示网络连接图标不见了,电脑任务栏不显示网络连接图标怎么办...
- matlab光滑曲线链接,在Matlab中使用光滑曲线连接点
- 版本控制git之一-仓库管理
- SEO知识:百度谷歌搜狗谷歌必应搜索引擎蜘蛛的特点
- 谈谈创业公司给服务器放在云端的优势和缺陷
- 移动通信:数字调制技术(BPSK, DPSK, QPSK, Π/4 QPSK,BFSK, MSK, GMSK, M-ary)学习笔记
- mysql聚类函数排序_聚类算法大盘点 - 如鱼饮水,冷暖自知 - OSCHINA - 中文开源技术交流社区...
- w ndows8重装,如何重装windows8系统-系统城
- job处理缓慢的性能问题排查与分析(r4笔记第18天)
- 【PowerDesigner】一款超好用的E-R图工具,快速构建出高质量的数据库结构,提高开发效率和代码质量
- Symbian OS通讯录
热门文章
- html 链接 vf,VFP中超链接实现方法
- dapperpoco mysql_DapperPoco -- 基于Dapper的、轻量级的、高性能的、简单的、灵活的ORM框架...
- 计算机考试只读,计算机基础考试试题-20210710011550.docx-原创力文档
- 鸽主姓名查询成绩_SQL学习之旅-Select简单查询
- java 字符串函数_Java字符串函数– 25+必须知道方法
- python元组_Python元组
- java输入一串字符串反转_反转Java中的字符串
- 苹果x翻新机序列号开头_Android翻新电话每隔X秒
- ThreadPoolExecutor – Java线程池示例
- 迅捷cad_迅捷结构