tensorflow tf.maximum(0,x)返回错误
当尝试使用tensorflow tf.maximum(0,x)返回错误,tensorflow,Tensorflow,当尝试使用tf.maximum时,如您所料: loss = tf.maximum(0, basic_loss) 得到了该误差 ---------------------------------------------------------------------------ValueError回溯(最近的调用 最后) /opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py 在ap
tf.maximum
时,如您所料:
loss = tf.maximum(0, basic_loss)
得到了该误差
---------------------------------------------------------------------------ValueError回溯(最近的调用
最后)
/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py
在apply_op中(self,op_type_name,name,**关键字)
489 as_ref=输入参数为,
-->490首选类型=默认类型)
491除类型错误作为错误外:
/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py
在内部\u中,将\u转换为\u张量(值、数据类型、名称,作为\u参考,
首选(数据类型)
740如果ret为无:
-->741 ret=conversion\u func(值,dtype=dtype,name=name,as\u ref=as\u ref)
742
/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py
in_TensorTensorConversionFunction(t、数据类型、名称、as_ref)
613“对于数据类型为%s的张量,张量转换请求的数据类型为%s:%r”
-->614%(dtype.name,t.dtype.name,str(t)))
615返回t
ValueError:Tensor转换请求使用的Tensor的数据类型为int32
dtype float32:'张量(“添加13:0”,shape=(),dtype=float32)”
在处理上述异常期间,发生了另一个异常:
TypeError回溯(最近的调用
最后)在()
5 tf.随机正态分布([3,128],平均值=1,标准差=1,种子值=1),
6 tf.随机正态分布([3,128],平均值=3,标准差=4,种子值=1))
---->7损耗=三重态损耗(y\u真,y\u pred)
8.
9打印(“loss=“+str(loss.eval()))
三重态损耗(y_真、y_pred、alpha)
26基本损耗=正距离-负距离+α
27#步骤4:取基本损失和0.0的最大值。总结培训示例。
--->28损耗=tf最大值(0,基本损耗)
29####结束代码在这里###
三十
/opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/gen_math_ops.py
最大(x,y,name)1261a张量
。具有与相同的类型
x
。1262 """
->1263结果=_op_def_lib.apply_op(“最大值”,x=x,y=y,name=name)1264返回结果1265
/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py
在apply_op中(self,op_type_name,name,**关键字)
524“%s”类型%s,参数“%s”。%
525(前缀,dtypes.as_dtype(attrs[input_arg.type_attr])。名称,
-->526根据[输入参数类型属性])推断
527
528类型=[values.dtype]
TypeError:“Maximum”Op的输入“y”的类型float32不正确
匹配参数“x”的int32类型
问题似乎出在哪里?没有说明最大值
函数是非交换的
它仅在第一个参数的类型为张量时有效,但在其类型为int时无效
需要使用常量参数的替换位置调用此函数:
tf.最大值(基本损耗,0)
而不是
tf.最大值(0,基本损耗)