2016-11-13 2 views
0

В чем разница в измерении или ранге между показаниями первых двух? Почему я могу добавить эти два (матрицы/векторы)? Это может звучать как наивный вопрос, но я стараюсь понять, как работает работа между тензорами/матрицами. Спасибо. (я также хотел бы знать, почему я могу добавить последние два результата не они два разных матриц размера.?)В чем разница между этими двумя тензорами и почему?

import tensorflow as tf 
import numpy as np 
W = tf.Variable(tf.zeros([784, 10])) 
x = tf.Variable(tf.zeros([2,784])) 
z = tf.matmul(x,W) 

Y = tf.Variable([4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0]) 

x = tf.Variable(tf.zeros([2,10])) 

model = tf.initialize_all_variables() 

with tf.Session() as session: 
    session.run(model) 
    print(session.run(z)) 
    print(session.run(Y)) 
    print(session.run(x)) 

Результат:

[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]] 

[ 4. 5. 6. 7. 8. 9. 10. 11. 12. 14.] 

[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] 
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]] 

ответ

0

Я не вижу каких-либо дополнений, только умножение.

Все, что вы делаете с переменной Y, распечатывает сам тензор, который содержит указанные вами значения плавания.

С z вы умножаете эти два тензора вместе. Общая формула для размерностей результата умножения матриц равна MxN * OxP = MxP (M и O - строки, N и P - столбцы). Итак, для x у вас есть тензор 2x784, умноженный на тензор 784x10. Это (по формуле общего размера) дает вам тензор с размерами 2x10.

Если вы имели в виду, что после факта вы могли бы добавить дополнение с Y и z, это потому, что библиотеки, такие как tensorflow, обычно применяют широковещательную передачу от одного тензора к другому при условии соответствия некоторого измерения. Так что если вы сделали Y + z вы получите

[[ 4. 5. 6. 7. 8. 9. 10. 11. 12. 14.] 
[ 4. 5. 6. 7. 8. 9. 10. 11. 12. 14.]] 

из-вещания применяется к числу строк в г.

EDIT: Я просто подумал, что вы просили разницу в терминах арифметической х) из-вещания, z - Y бы

[[ -4. -5. -6. -7. -8. -9. -10. -11. -12. -14.] 
[ -4. -5. -6. -7. -8. -9. -10. -11. -12. -14.]] 
+0

Благодарим Вас за давая мне знать о вещании от одного тензора к другому. Вот что я пытался понять. Я поставил вопрос немного точным из того, что я имел в виду, по разнице между первыми двумя результатами. –

Смежные вопросы