Значения умножения матриц варьируются, когда тензорный поток запущен в жадном режиме по сравнению с графическим режимом
Поток кода различен для энергичных и неагрессивных исполнений в тензорном потоке. Но значения должны идеально совпадать, а это не так.
Стремительное исполнение:
import tensorflow as tf
from tensorflow.python.ops import gen_math_ops
import numpy as np
tf.enable_eager_execution()
dZ = np.array([[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, -0.9, 0.1, 0.1, 0.1]])
FC_W = np.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., 1., 1., 1.]])
import pdb
pdb.set_trace()
a = gen_math_ops.mat_mul(dZ, FC_W, False, True)
print(a)
Вывод нетерпеливого исполнения: [[-2.77555756e-17 -2.77555756e-17 -2.77555756e-17]
График выполнения:
import tensorflow as tf
from tensorflow.python.ops import gen_math_ops
import numpy as np
dZ = np.array([[ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, -0.9, 0.1, 0.1, 0.1]])
FC_W = np.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., 1., 1., 1.]])
a = gen_math_ops.mat_mul(dZ, FC_W, False, True)
sess = tf.InteractiveSession()
print(str(sess.run(a)))
Вывод графика выполнения: [[-5.55111512e-17 -5.55111512e-17 -5.55111512e-17]]
Не слишком ли большая разница в выходных данных между двумя режимами для простого умножения матриц?
(Хотя это е-17)