如何将仅包含一个元素的一维张量转换为0-D张量?

时间:2019-03-19 06:47:50

标签: python tensorflow

假定a是仅包含一个元素的一维张量。我们将要执行的操作要求我们传递一个0-D张量。例如,tf.range(),其中开始,极限和增量值必须是0-D张量,并且我们以计算的中间结果的形式获得了开始,极限和增量值,因此位于形状为[1]。我们如何将它们转换为标量?

1 个答案:

答案 0 :(得分:0)

当我们声明如下常量时:
a = tf.constant(5, dtype = tf.int32)
那么我们得到的值就是一个标量常量。
在打印形状时,我们得到:
In[1]: se = tf.Session()
In[2]: se.run(tf.shape(a))
Out[2]: array([], dtype=int32)

如果a的格式为

a = tf.constant([5], dtype = tf.int32)

形状将变为

In[3]: se.run(tf.shape(a))
Out[3]: array([1], dtype=int32)

最终答案

以上结果清楚地表明,如果a将是一维张量,为了将其转换为标量,我们要做的就是
In[4]: tf.reshape(a, shape = [])