Python 如何从Tensorflow中的两个标量构建张量?

Python 如何从Tensorflow中的两个标量构建张量?,python,tensorflow,Python,Tensorflow,我有两个由以下操作产生的标量: a=tf.reduce_sum(tensor1),b=tf.matmul(tf.transpose(tensor2),tensor3)这是一个点积,因为tensor2和tensor3具有相同的维度(一维向量)。由于这些张量具有形状[None,dim1],因此很难处理这些形状 我想用a和b构建一个具有形状(2,1)的张量 我尝试了tf.Tensor([a,b],dtype=tf.float64,value\u index=0),但出现了错误 TypeError:op

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

我想用
a
b
构建一个具有形状(2,1)的张量

我尝试了
tf.Tensor([a,b],dtype=tf.float64,value\u index=0)
,但出现了错误

TypeError:op需要是一个操作:[,]


有没有更简单的方法来建立张量/向量?

这可能就行了。根据需要更改轴

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

array([[1],
       [2]], dtype=int32)
您可以使用来实现这一点:

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

来实现它。这种方法不起作用,我将重新表述我的问题,因为我省略了一些细节。你写道:
我有两个标量是由….产生的。因为这些张量具有形状[None,dim1]
。那么它们是标量还是向量呢?@Deigo:你试过tf.stack版本吗?我只使用了shape None的常量。@salvadodali你是对的,实际上它们都具有上面提到的形状
tensor1.shape=[None,dim1]
,因此我可以进行批处理。所以这些是(应该)批处理大小的向量,那么您不应该对tf.concat或tf.stack有任何问题