我在寻找numpy中的一个矩阵运算,或者最好是在py手电筒中,它允许一个向量(1xN)乘以一个张量(Numpy)并得到(1xMxM)。这很容易使用for循环实现,但是for循环不允许在训练期间反向传播。我试着在numpy和py手电筒中使用matmul (还有其他几种,比如点和bmm),但都无法工作。下面是一个示例(其中有M=2,但在我的用例中是256个),它说明了我要做的事情:
a
目前,我尝试编写自己的丢失函数,但是当返回结果(由包含损失值的列表组成的张量)时,我得到以下错误:
ValueError: No gradients provided for any variable:然而,在教程和他们的文档中,他们也使用tf.recude_mean,当他们像他们一样使用它时(他们展示了如何编写mse丢失函数),我没有得到错误,所以我似乎遗漏了一些东西。# now contains 32 lists (a batch) of bbxs -> shape is (3