tf.Variable和tensor的区别(转)
刷课过程中思考到Variable和Tensor之间的区别,尝试发现在如下代码中:
a = tf.Variable(tf.ones(1))
b = tf.add(a,tf.ones(1))
1
2
a是Variable,而b是Tensor。发现自己对Variable和Tensor之间的区分了解不多,所以搜索了一下,记录自己的思考,欢迎指教。
Variable是可更改的(mutable),而Tensor是不可更改的。一个直接的例子就是Tensor不具有assign函数,而Variable含有。
python和其他语言的API以及实现方式存在差异,本文只探讨general以及python方面的内容。
Variable用于存储网络中的权重矩阵等变量,而Tensor更多的是中间结果等。
Variable是会显示分配内存空间的(既可以是内存,也可以是显存),需要初始化操作(assign一个tensor),由Session管理,可以进行存储、读取、更改等操作。相反地,诸如Const, Zeros等操作创造的Tensor,是记录在Graph中,所以没有单独的内存空间;而其他未知的由其他Tensor操作得来的Tensor则是只会在程序运行中间出现。
Tensor可以使用的地方,几乎都可以使用Variable。
参考资料:
https://stackoverflow.com/questions/37849322/how-to-understand-the-term-tensor-in-tensorflow
https://stackoverflow.com/questions/40866675/implementation-difference-between-tensorflow-variable-and-tensorflow-tensor
https://stackoverflow.com/questions/38556078/in-tensorflow-what-is-the-difference-between-a-variable-and-a-tensor
https://www.tensorflow.org/programmers_guide/variables
https://www.tensorflow.org/api_docs/python/tf/Variable
---------------------
作者:silent56_th
来源:CSDN
原文:https://blog.csdn.net/silent56_th/article/details/75577974?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!
tf.Variable和tensor的区别(转)的更多相关文章
- tf.variable和tf.get_Variable以及tf.name_scope和tf.variable_scope的区别
在训练深度网络时,为了减少需要训练参数的个数(比如具有simase结构的LSTM模型).或是多机多卡并行化训练大数据大模型(比如数据并行化)等情况时,往往需要共享变量.另外一方面是当一个深度学习模型变 ...
- tf.Variable() 与tf.get_variable()的区别
每次调用 tf.Variable() 都会产生一个新的变量,变量名称是一个可选参数,运行命名相同,如果命名冲突会根据命名先后对名字进行处理, tf.get_variable()的变量名称是必填参数,t ...
- TF.VARIABLE、TF.GET_VARIABLE、TF.VARIABLE_SCOPE以及TF.NAME_SCOPE关系
1. tf.Variable与tf.get_variable tensorflow提供了通过变量名称来创建或者获取一个变量的机制.通过这个机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要 ...
- 理解 tf.Variable、tf.get_variable以及范围命名方法tf.variable_scope、tf.name_scope
tensorflow提供了通过变量名称来创建或者获取一个变量的机制.通过这个机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要将变量通过参数的形式到处传递. 1. tf.Variable( ...
- 深度学习原理与框架-Tensorflow基本操作-变量常用操作 1.tf.random_normal(生成正态分布随机数) 2.tf.random_shuffle(进行洗牌操作) 3. tf.assign(赋值操作) 4.tf.convert_to_tensor(转换为tensor类型) 5.tf.add(相加操作) tf.divide(相乘操作) 6.tf.placeholder(输入数据占位
1. 使用tf.random_normal([2, 3], mean=-1, stddev=4) 创建一个正态分布的随机数 参数说明:[2, 3]表示随机数的维度,mean表示平均值,stddev表示 ...
- 使用tf.print()打印tensor内容
使用tf.Print()打印tensor内容,这是tensorflow中调试bug的一个手段,例子如下所示: import tensorflow as tf a = tf.Variable(tf.ra ...
- 彻底弄懂tf.Variable、tf.get_variable、tf.variable_scope以及tf.name_scope异同
https://blog.csdn.net/qq_22522663/article/details/78729029 1. tf.Variable与tf.get_variabletensorflow提 ...
- tensorflow共享变量 the difference between tf.Variable() and get_variable()
一般这样用tf.get_variable(): v = tf.get_variable(name, shape, dtype, initializer) 下面内容来源于 http://blog.csd ...
- TensorFlow 辨异 —— tf.placeholder 与 tf.Variable
https://blog.csdn.net/lanchunhui/article/details/61712830 https://www.cnblogs.com/silence-tommy/p/70 ...
随机推荐
- ubuntu 16.04 ssh免密码连接不上
我们在用ubuntu系统搭建集群的时候,配置免密码登录是必须经过的一步 我这里集群的每个节点都是采用的是root用户,因为ubuntu系统不同centos,ubuntu真的限制太多太不友好了 下面看看 ...
- 集群中使用chronyc同步时间
在集群之中,有些服务器之间的时间需要同步,但并不是所有机器可以直接连外网,这时可以用Chrony工具解决. 解决方法是将其中一台设为时间服务器,然后其它服务器和这台时间服务器同步即可.具体步骤如下: ...
- implementation compile的区别
implementation不可以依赖传递:依赖对app Module 是不可见的 compile可以依赖传递:依赖对app Module 是可见的 AndroidStudio升级到3.0以上后,第一 ...
- webstorm命令行无法使用node-gyp进行编译
换成cmd命令即可:
- 修改windows服务的描述
sc description xxxxxxxxxx "需要修改成的描述" sc 是主命令 description 是这个主命令的具体command xxxxxxxxxx 是服 ...
- 学习笔记:jqchart
(Highcharts 167K: ECharts 354K: jqChart 240K),如果用于网络,Highchart最小 jqchart 国外的一个图表库 挺漂亮的 http://www.j ...
- hdfs dfsadmin 命令详解
hdfs dfsadmin [-report [-live] [-dead] [-decommissioning]] [-safemode <enter | leave | get | wait ...
- 错误:SyntaxError: Missing parentheses in call to 'print'
1.Python3编译器使用print函数需加括弧 print(XXX) 而Python 2可以print XXX 2.Python3表示不等只能用"!=" 3.在python3中 ...
- XML 试题
六. XML 部 分 1 .xml 有 哪 些 解 析 技 术? 区 别 是 什 么? 答:有 DOM,SAX,STAX 等 DOM:处理大型文件时其性能下降的非常厉害.这个问题是由 DOM 的树结构 ...
- leetcode1024
class Solution(object): def videoStitching(self, clips: 'List[List[int]]', T: int) -> int: li = s ...