В чем разница между этими двумя тензорами и почему?
Какая разница в измерении или ранге между первыми двумя показанными результатами? Почему я могу добавить эти два (матрицы / векторы)? Это может звучать как наивный вопрос, но я очень стараюсь понять, как работает сложение между тензорами / матрицами. Спасибо. (Я также хотел знать, почему я могу добавить два последних результата. Разве это не две матрицы разных размеров?)
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.]]
1 ответ
Я не вижу никаких дополнений, только умножение.
Все, что вы делаете с Y
Переменная выводит сам тензор, который содержит заданные вами плавающие значения.
С z
Вы умножаете эти два тензора вместе. Общая формула для размеров результата умножения матриц имеет вид MxN * OxP = MxP (M и O - строки, N и P - столбцы). Таким образом, для x у вас есть тензор 2x784, умноженный на тензор 784x10. Это (по формуле общей размерности) дает вам тензор с размерами 2x10.
Если вы имели в виду, что вы могли бы сделать сложение после того, как Y
а также z
, это потому, что библиотеки, такие как tenorflow, обычно применяют широковещательную передачу от одного тензора к другому, если совпадают некоторые измерения. Так что если вы сделали Y + z
ты бы получил
[[ 4. 5. 6. 7. 8. 9. 10. 11. 12. 14.]
[ 4. 5. 6. 7. 8. 9. 10. 11. 12. 14.]]
из-за того, что трансляция применяется к числу строк в z.
РЕДАКТИРОВАТЬ: Я просто подумал, что вы просили разницы с точки зрения арифметики х) из-за вещания, z - Y
было бы
[[ -4. -5. -6. -7. -8. -9. -10. -11. -12. -14.]
[ -4. -5. -6. -7. -8. -9. -10. -11. -12. -14.]]