Javascript TensorFlow.JS整数乘法结果十进制数

Javascript TensorFlow.JS整数乘法结果十进制数,javascript,safari,tensorflow.js,Javascript,Safari,Tensorflow.js,我刚刚开始使用tensorflow.js,创建了两个简单的张量,并尝试对它们执行乘法运算 出于某种原因,两个张量和浮点整数值相乘的结果会导致其中一些张量的十进制数值。Safari浏览器版本11.1.2上出现这种情况,但不确定原因 // Create new 1D Tensors const data3 = tf.tensor1d([4, 6, 5, 9]); const data4 = tf.tensor1d([5, 4, 23, 45]); // Multipying and Chainin

我刚刚开始使用tensorflow.js,创建了两个简单的张量,并尝试对它们执行乘法运算

出于某种原因,两个张量和浮点整数值相乘的结果会导致其中一些张量的十进制数值。Safari浏览器版本11.1.2上出现这种情况,但不确定原因

// Create new 1D Tensors
const data3 = tf.tensor1d([4, 6, 5, 9]);
const data4 = tf.tensor1d([5, 4, 23, 45]);

// Multipying and Chaining Print Operations
data3.mul(data4).print();
Safari Web控制台上的输出:

张量
[20,23.9999981117.3000031405.0000916]这是预期的,因为默认的数据类型是
float32
,我们将该数据作为float上传到GPU,GPU的精度低于本机JS

创建张量时,必须明确地告诉用户数据类型是
int32

data3 = tf.tensor1d([4, 6, 5, 9, 11], 'int32');
data4 = tf.tensor1d([5, 4, 23, 45, 23], 'int32');
data3.mul(data4).print();
即使输入为float32,您也可能在TF.js>=0.13.0的输出中获得int,这是因为当输入足够小时,我们开始将计算转发到CPU,而不是在GPU上进行。

看起来像是一个bug。我会记录它现在可以工作了(0.13.0)。