this paper'u yeniden uygulamak için çalışıyorum ve tuş işlemi bir bilye tensör ürünüdür. Bunun ne anlama geldiğini pek bilmiyorum ama kağıdın anladığı küçük bir grafik var.TensorFlyear Tensör Ürünü TensorFlow
anahtar operasyon E_1 * W * E-2 olduğunu ve dinlenme kolay olmalı, çünkü tensorflow bunu uygulamak için nasıl bilmek istiyorum.
Temel olarak, belirli bir 3D tensör W, matrisler içine dilim, ve j numaralı dilim (matris) için, bir skaler ile sonuçlanan, E_1 ve E-2 her tarafında çarpın sonuçtaki vektörde jth girişi (bu işlemin çıkışı).
Yani, W E_1, d boyutlu vektör, bir ürünü gerçekleştirmek için d x d x k tensörünü istiyor ve E-2, başka d boyutlu vektör. Bu ürün şimdi olduğu gibi TensorFlow'da açık bir şekilde ifade edilebilir mi, yoksa kendi işimi bir şekilde tanımlamalı mıyım?
ÖNCE
Neden bu tansörleri işi çarparak gelmez EDITS ve daha açık biçimde çalışmak tanımlamak için bir yol var mı?
>>> import tensorflow as tf
>>> tf.InteractiveSession()
>>> a = tf.ones([3, 3, 3])
>>> a.eval()
array([[[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]],
[[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]],
[[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]]], dtype=float32)
>>> b = tf.ones([3, 1, 1])
>>> b.eval()
array([[[ 1.]],
[[ 1.]],
[[ 1.]]], dtype=float32)
>>>
hata mesajı
ValueError: Shapes TensorShape([Dimension(3), Dimension(3), Dimension(3)]) and TensorShape([Dimension(None), Dimension(None)]) must have the same rank
ANDA
iki 3D tensörleri çarparak ya tf.matmul
ile çalışmıyor çıkıyor, bu yüzden ancak tf.batch_matmul
yapar. tf.batch_matmul
da 3D tensörler ve matrisler yapacak. Ardından 3D'yi ve bir vektörü denedim:
ValueError: Dimensions Dimension(3) and Dimension(1) are not compatible
Bunu basit bir yeniden şekillendirme ile yapabilirsiniz. – mdaoust
Sonunda kağıdı uyguladınız mı? – Apurv