到RGB的tensorflow单通道给出等级0

时间:2018-09-27 07:55:12

标签: python numpy tensorflow

我正在创建一个多维数组。

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)

1 个答案:

答案 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

希望这会有所帮助。