我想tf.matmul在 2 级和 3 级的两个张量之间广播一个操作,其中一个包含“未知”形状的维度(基本上是特定维度中的“无”值)。问题是,与动态维度tf.reshape和tf.broadcast_to似乎并不工作。x = tf.placeholder(shape=[None, 5, 10], dtype=tf.float32)w = tf.ones([10, 20])y = x @ wwith tf.Session() as sess: r1 = sess.run(y, feed_dict={x: np.ones([3, 5, 10])}) r2 = sess.run(y, feed_dict={x: np.ones([7, 5, 10])})以上面的代码为例。在这种情况下,我将分别喂入 3 个和 7 个元素的两个不同批次。我希望r1并r2成为w这些批次中 3 或 7 个元素中的每一个的矩阵乘法的结果。因此,r1和的结果形状r2分别为 (3, 5, 20) 和 (7, 5, 20),但我得到:ValueError: Shape must be rank 2 but is rank 3 for 'matmul' (op: 'MatMul') with input shape: [?,5,10], [10,20]。
添加回答
举报
0/150
提交
取消