小编nav*_* sr的帖子

keras自定义层中的持久变量

我想写一个自定义图层,我可以在运行之间在内存中保留一个变量.例如,

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

keras keras-layer

2
推荐指数
1
解决办法
1934
查看次数

标签 统计

keras ×1

keras-layer ×1