ValueError:不支持任何值

时间:2016-08-17 12:33:28

标签: tensorflow keras

我构建了一个自定义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的影响如何,是否有更好的方法来实现同样的目标?

1 个答案:

答案 0 :(得分:1)

您是否尝试在x?

指示的索引处获取权重值

Tensorflow象征性地存储变量;在会话图上评估它们时,它们实际上不会在运行时获取值。因此,为了获得权重,您必须首先评估它们以加载它们的值。