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



假设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 = [])

最新更新