我的问题是从一个numpy列表在tensorflow中创建一个列表时开始的。我发现的最好方法是创建一个包含列表中所有条目的矩阵,根据: https://datascience.stackexchange.com/questions/15056/how-to-use-lists-in-tensorflow
所以每一行代表我的numpy列表中的一个元素,总共有N
个元素(或张量)。在下面的例子中,我有两个列表,由矩阵X1
和X2
表示,每个张量(或列表)的所有形状都用另一个矩阵表示,分别称为shapeX1
和{
我用shapeX1
和{X1
和{tf.einsum
,如下所示:
X1 = tf.placeholder(dtype=tf.float64, shape=(N,M1))
shapeX1 = tf.placeholder(dtype=tf.int32, shape=(N,3))
X2 = tf.placeholder(dtype=tf.float64, shape=(N,M2))
shapeX2 = tf.placeholder(dtype=tf.int32, shape=(N,3))
tensX1 = tf.reshape(X1[0,:], shape=[shapeX1[0,0],shapeX1[0,1],shapeX1[0,2]])
tensX2 = tf.reshape(X2[0,:], shape=[shapeX2[0,0],shapeX2[0,1]])
P = tf.einsum('ijk,jk->ik', tensX1, tensX2)
对于表达式tensX1
和tensX2
,每个张量的维数都与计算兼容。但是我得到了一个错误tf.einsum
(就在下面):
ValueError: Cannot take the length of Shape with unknown rank.
可能是因为tensX1
和tensX2
的维数都未知:
在我的例子中,每个张量的形状是不一样的,即shapeX1
(或shapeX2
)的每一行都不一定具有相同的维数。
所以我之前不能给它下定义。在
求你了 我怎样才能修好它?有更好的方法吗?在
目前没有回答
相关问题 更多 >
编程相关推荐