テンソルフローでは、エントロピーと行列の乗算に便利な関数がありますが、ドキュメントを調べた結果、の外積を2つのテンソルのとするための内部関数は見つかりません。 (numpy.outerのような)小さいテンソルの要素のすべての可能な副産物:テンソルフローの外積
v_{i,j} = x_i*h_j
または
M_{ij,kl} = A_{ij}*B_{kl}
tensorflowは、このような機能を持っていますか?
テンソルフローでは、エントロピーと行列の乗算に便利な関数がありますが、ドキュメントを調べた結果、の外積を2つのテンソルのとするための内部関数は見つかりません。 (numpy.outerのような)小さいテンソルの要素のすべての可能な副産物:テンソルフローの外積
v_{i,j} = x_i*h_j
または
M_{ij,kl} = A_{ij}*B_{kl}
tensorflowは、このような機能を持っていますか?
はい、テンソルフローのブロードキャストセマンティクスを利用することでこれを行うことができます。最初のサイズを自分自身の1xNサイズに、2番目のサイズを自分自身のサイズMx1に合わせると、それらを乗算するとすべての結果がMxNにブロードキャストされます。
は(あなたがところで、それは単純な文脈でどのように動作するか確認するためにnumpyの中で同じことで遊ぶことができます。
a = np.array([1, 2, 3, 4, 5]).reshape([5,1])
b = np.array([6, 7, 8, 9, 10]).reshape([1,5])
a*b
あなたはtensorflowでそれを行う方法を正確にあなたがしたい軸どのビットに依存します使用して、どのような意味論あなたは結果の乗算のためにしたいが、一般的な考え方が適用されます。ケースの他の誰かがつまずいて
この時、tensorflowドキュメントに応じて次の2つのテンソルa
の外積を計算するためにtf.einsum()
機能を使用することができますし、 b
:
# Outer product
>>> einsum('i,j->ij', u, v) # output[i,j] = u[i]*v[j]