假设a
是仅包含一个元素的一维张量。我们将要执行的操作需要我们通过0-D张量。例如,tf.range()在开始,限制和增量值必须是0-d张量的情况形状为[1]
。我们如何将它们转换为标量?
当我们声明常数如下时:
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 = [])