我正在创建一个多维数组。
import numpy as np
import tensorflow as tf
a = np.zeros((10, 4, 4, 1))
print(a.shape)
(10, 4, 4, 1)
我想添加rgb频道,所以我在做:
tf_a = tf.image.grayscale_to_rgb(a, name=None)
print(tf.rank(tf_a))
Tensor("Rank:0", shape=(), dtype=int32)
它给了我张量为0而不是4的张量。
此外,形状:
print(tf.shape(tf_a))
给予:Tensor("Shape:0", shape=(4,), dtype=int32)
答案 0 :(得分:1)
在Tensorflow中, tf.rank(tf_a)和 tf.shape(tf_a)返回张量。在这里,您将打印这些张量的形状和等级,而不是 tf_a 的形状和等级。
因此,我对您的代码进行了稍微的编辑以获取实际结果。
import numpy as np
import tensorflow as tf
a = np.zeros((10, 4, 4, 1))
tf_a = tf.image.grayscale_to_rgb(a, name=None)
sess = tf.Session()
with sess.as_default():
print(tf.rank(tf_a).eval()) # rank
print(tf.shape(tf_a).eval()) #shape
4 #rank
[10 4 4 3] #result
希望这会有所帮助。