栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何理解TensorFlow中的术语``张量''?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何理解TensorFlow中的术语``张量''?

TensorFlow没有一流的Tensor对象,这意味着

Tensor
在运行时执行的基础图中没有任何概念。相反,该图由相互连接的op节点组成,代表操作。操作分配内存的输出,这些都可以在端点上
:0
:1
等等,你可以认为这些端点作为的
Tensor
。如果具有
tensor
,则
nodename:0
可以将其值提取为
sess.run(tensor)
sess.run('nodename:0')
。执行粒度发生在操作级别,因此该
run
方法将执行op,该op将计算所有端点,而不仅仅是
:0
端点。可能有一个没有输出的Op节点(例如
tf.group
),则没有张量与其关联。没有底层Op节点就不可能有张量。

您可以通过执行以下操作来检查基础图中发生了什么

tf.reset_default_graph()value = tf.constant(1)print(tf.get_default_graph().as_graph_def())

因此,

tf.constant
有了一个操作节点,您可以使用
sess.run("Const:0")
或获取它
sess.run(value)

同样,

value=tf.placeholder(tf.int32)
创建一个具有name的常规节点
Placeholder
,您可以将其作为
feed_dict={"Placeholder:0":2}
或馈入
feed_dict={value:2}
。您不能在同一
session.run
调用中提供和获取占位符,但是可以通过
tf.identity
在顶部附加节点并获取该结果来查看结果。

对于变量

tf.reset_default_graph()value = tf.Variable(tf.ones_initializer()(()))value2 = value+3print(tf.get_default_graph().as_graph_def())

你会看到,它创建两个节点

Variable
Variable/read
,该
:0
点要在这两个节点获取一个有效的值。但是
Variable:0
具有特殊
ref
类型,这意味着它可以用作变异操作的输入。Python调用的结果
tf.Variable
是一个Python
Variable
对象,并且有一些Python魔术可以替代
Variable/read:0
Variable:0
取决于是否需要进行突变。由于大多数操作只有1个端点,
:0
因此将其删除。另一个例子是
Queue
-
close()
方法将创建一个新的
Close
op节点,该节点连接到
Queue
op。总而言之-
根据用途对python对象进行操作
Variable
Queue
映射到不同的基础TensorFlow op节点。

对于诸如此类

tf.split
tf.nn.top_k
创建具有多个端点的节点的操作,Python的
session.run
调用会自动将输出包装在
tuple
或可单独获取
collections.namedtuple
Tensor
对象中。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624211.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号