我想写一个自定义图层,我可以在运行之间在内存中保留一个变量.例如,
class MyLayer(Layer):
def __init__(self, out_dim = 51, **kwargs):
self.out_dim = out_dim
super(MyLayer, self).__init__(**kwargs)
def build(self, input_shape):
a = 0.0
self.persistent_variable = K.variable(a)
self.built = True
def get_output_shape_for(self, input_shape):
return (input_shape[0], 1)
def call(self, x, mask=None):
a = K.eval(self.persistent_variable) + 1
K.set_value(self.persistent_variable, a)
return self.persistent_variable
m = Sequential()
m.add(MyLayer(input_shape=(1,)))
Run Code Online (Sandbox Code Playgroud)
当我运行时m.predict
,我希望persistent_variable
更新,并打印增量值.但它看起来总是打印出来0
# Dummy input
x = np.zeros(1)
m.predict(x, batch_size=1)
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何persistent_variable
在每次运行后进行增量和保存m.predict
谢谢,Naveen