実行間で変数をメモリに保持できるカスタムレイヤーを作成したいと思います。例えば、
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,)))
を実行すると、 が更新され、インクリメントされた値が出力されることm.predict
を期待しています。persistent_variable
しかし、それは常に印刷されるようです0
# Dummy input
x = np.zeros(1)
m.predict(x, batch_size=1)
私の質問は、persistent_variable
実行するたびにインクリメントして保存する方法ですm.predict
ありがとう、ナビーン