张量流中的 1 和 1.0 之间有区别吗?



我发现了一个关于自定义指标的片段。

smooth = 0.001
dices = (2. * a + smooth) / (a+ b+ smooth)
ratio = a/ (K.sum(a) + smooth)
ratio = 1.0 - ratio

为什么作者更喜欢浮点数(如2.1.0(而不是整数(21(? 而且我发现很多人更喜欢使用浮点数而不是整数,我不知道为什么。

我想这是不是原因?

下面的代码将显示两者之间的区别。

t1 = tf.constant(value=1)
t1.dtype

输出 tf.int32

t2 = tf.constant(value=1.0)
t2.dtype

输出 TF.float32

现在添加这两个张量将抛出错误,因为这两个张量的数据类型不同。

t3 = tf.add(x=t1, y=t2)

输出:

回溯(最近一次调用(: 文件 "c:\ProgramData\Anaconda3\envs\tensorflow_cpu\lib\site-packages\tensorflow\python\framework\op_def_library.py",第 527 行,_apply_op_helper preferred_dtype=default_dtype( 文件 "c:\ProgramData\Anaconda3\envs\tensorflow_cpu\lib\site-packages\tensorflow\python\framework\ops.py",第 1224 行,internal_convert_to_tensor ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref( 文件 "c:\ProgramData\Anaconda3\envs\tensorflow_cpu\lib\site-packages\tensorflow\python\framework\ops.py",第 1018 行,_TensorTensorConversionFunction (dtype.name, t.dtype.name, str(t((( ValueError:对于具有 dtype float32 的张量,请求张量转换 dtype int32: 'Tensor("Const_4:0", shape=((, dtype=float32('

最新更新