了解 Tensorflow 的形状、等级和大小
Understanding Tensorflow's shape, rank and size
我正在尝试查看 tf.rank()、tf.shape() 和 tf.size() 的输出,但即使是一个简单的列表,我也会得到奇怪的结果:
t = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [2, 3, 4]]
结果如下:
In [451]: tf.shape(t)
Out[451]: <tf.Tensor 'Shape_11:0' shape=(2,) dtype=int32>
In [452]: tf.size(t)
Out[452]: <tf.Tensor 'Size_5:0' shape=() dtype=int32>
In [453]: tf.rank(t)
Out[453]: <tf.Tensor 'Rank_4:0' shape=() dtype=int32>
你能解释一下如何解释这些吗?
谢谢
您正在打印 tf.shape(t)
、tf.size(t)
和 tf.rank(t)
的形状(张量,而不是它们的结果。
相反,创建一个会话并评估那些:
t = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9], [2, 3, 4]])
sess = tf.Session()
print sess.run(tf.shape(t))
print sess.run(tf.size(t))
print sess.run(tf.rank(t))
我们只看第一个输出。
In [451]: tf.shape(t)
Out[451]: <tf.Tensor 'Shape_11:0' shape=(2,) dtype=int32>
tf.shape
在计算图中添加一个运算,returns 添加一个张量。
此张量的名称为 Shape_11:0
其中
Shape
是生成此张量的 op 的名称,后跟
_<n>
其中 <n>
是
图(调用 tf.shape
)。
:<idx>
是该张量在生成它的操作的输出中的索引。
这个张量有 shape
那就是 (2,)
,所以它是一个二维张量。
这个张量有一个 type
那是 int32
。
其他 2 个 ops 乘积张量也是如此。按照前面的推理你可以理解他们的输出。
这就是你输出的解释。顺便说一句,如果你想获得操作的结果,你必须将操作评估为会话 Olivier Moindrot pointed out in .
我正在尝试查看 tf.rank()、tf.shape() 和 tf.size() 的输出,但即使是一个简单的列表,我也会得到奇怪的结果:
t = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [2, 3, 4]]
结果如下:
In [451]: tf.shape(t)
Out[451]: <tf.Tensor 'Shape_11:0' shape=(2,) dtype=int32>
In [452]: tf.size(t)
Out[452]: <tf.Tensor 'Size_5:0' shape=() dtype=int32>
In [453]: tf.rank(t)
Out[453]: <tf.Tensor 'Rank_4:0' shape=() dtype=int32>
你能解释一下如何解释这些吗?
谢谢
您正在打印 tf.shape(t)
、tf.size(t)
和 tf.rank(t)
的形状(张量,而不是它们的结果。
相反,创建一个会话并评估那些:
t = tf.constant([[1, 2, 3], [4, 5, 6], [7, 8, 9], [2, 3, 4]])
sess = tf.Session()
print sess.run(tf.shape(t))
print sess.run(tf.size(t))
print sess.run(tf.rank(t))
我们只看第一个输出。
In [451]: tf.shape(t)
Out[451]: <tf.Tensor 'Shape_11:0' shape=(2,) dtype=int32>
tf.shape
在计算图中添加一个运算,returns 添加一个张量。
此张量的名称为 Shape_11:0
其中
Shape
是生成此张量的 op 的名称,后跟_<n>
其中<n>
是 图(调用tf.shape
)。:<idx>
是该张量在生成它的操作的输出中的索引。
这个张量有 shape
那就是 (2,)
,所以它是一个二维张量。
这个张量有一个 type
那是 int32
。
其他 2 个 ops 乘积张量也是如此。按照前面的推理你可以理解他们的输出。
这就是你输出的解释。顺便说一句,如果你想获得操作的结果,你必须将操作评估为会话 Olivier Moindrot pointed out in