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