如何在Tensorflow中从2个标量构建张量?

时间:2017-05-18 18:28:30

标签: python tensorflow

我有以下操作产生的两个标量: a = tf.reduce_sum(tensor1)b = tf.matmul(tf.transpose(tensor2), tensor3)这是点积,因为tensor2tensor3具有相同的维度(1-D向量)。由于这些张量具有形状[None, dim1],因此很难处理形状。

我想使用ab构建一个具有形状(2,1)的张量。

我尝试tf.Tensor([a,b], dtype=tf.float64, value_index=0)但提出了错误

TypeError: op needs to be an Operation: [<tf.Tensor 'Sum_5:0' shape=() dtype=float32>, <tf.Tensor 'MatMul_67:0' shape=(?, ?) dtype=float32>]

构建张量/向量的任何更简单的方法?

2 个答案:

答案 0 :(得分:1)

这可能会。根据您的需要更改轴

a = tf.constant(1)
b = tf.constant(2)
c = tf.stack([a,b],axis=0)

输出:

array([[1],
       [2]], dtype=int32)

答案 1 :(得分:1)

您可以使用concat or stack来实现此目标:

import tensorflow as tf
t1 = tf.constant([1])
t2 = tf.constant([2])
c = tf.reshape(tf.concat([t1, t2], 0), (2, 1))

with tf.Session() as sess:
    print sess.run(c)

以类似的方式,您可以使用tf.stack来实现它。