Это ожидается, так как по умолчанию dtype равен float32
, и мы загружаем эти данные как плавающие в GPU, который имеет меньшую точность, чем собственный JS.
При создании тензоров вы должны явноскажем, что тип d int32
:
data3 = tf.tensor1d([4, 6, 5, 9, 11], 'int32');
data4 = tf.tensor1d([5, 4, 23, 45, 23], 'int32');
data3.mul(data4).print();
Причина, по которой вы можете получить целые числа в выходных данных для TF.js> = 0.13.0, даже если входные данные имеют тип float32, заключается в том, что мы начали пересылку вычислений вПроцессор, когда вход достаточно мал, вместо того, чтобы делать это на GPU.