【发布时间】:2016-08-17 12:33:28
【问题描述】:
我构建了一个自定义的 Keras 层,它有两种类型的权重,可学习的和不可学习的。在build(self, input_shape)
我将两个权重矩阵 Wt 和 Wu 相加,如下所示。
self.trainable_weights = [self.Wt]
self.non_trainable_weights = [self.Wu]
self.non_trainable_weights[0].eval(K.get_session()) # why?
在call(self, x, mask=None) 我愿意:
gwt = K.gather(self.Wt, x)
gwu = K.gather(self.Wu, x)
return gwu + gwt
我的后端是 TensorFlow。
只有当我为不可训练的权重调用 eval 时,该代码才有效。如果我忽略它,我会得到一个 ValueError: None values not supported. 对于可训练的权重,我不必调用 eval。
无论eval 的效果是什么,有没有更好的方法来达到同样的效果?
【问题讨论】:
标签: tensorflow keras