我试图运行脚本lstm_ptb.py但它为以下行抛出一个TypeError:
shrink_factor = ifelse(T.gt(norm_gparams,max_grad_norm),max_grad_norm/norm_gparams,1.)
这就是这条线试图实现的目标:
if norm_gparams > max_grad_norm:
shrink_factor = max_grad_norm/norm_gparams
else:
shrink_factor = 1.
它说:
TypeError:两个分支应该具有相同的类型,但它们分别是TensorType(float64,标量)和TensorType(float32,标量) . 如果您在then分支上提供了一个元素列表但在else分支上提供了一个张量,则可能会引发此错误
请问如何解决错误?谢谢
1 回答
你的问题是
1.
在else
部分引起的 . 默认情况下,它指定为float32
类型 . 你只需要转换它:或转换
max_grad_norm/norm_gparams
值:所以这两个值都有相同的类型