Theano:ifelse TypeError

时间:2016-07-07 20:05:52

标签: python theano

我正在尝试运行脚本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 个答案:

答案 0 :(得分:1)

Date startOfToday = new Date().clearTime() Date startOfTomorrow = startOfToday + 1 def result = criteria.list { between 'expireDate', startOfToday, startOfTomorrow } 1.部分导致的问题。默认情况下,它被指定为else类型。你只需要转换它:

float32

或转换shrink_factor = ifelse(T.gt(norm_gparams,max_grad_norm),max_grad_norm/norm_gparams,np.float64(1.)) 值:

max_grad_norm/norm_gparams

因此两个值都具有相同的类型