我想请您帮助创建我的自定义图层。我想做的实际上非常简单:生成一个带有“状态”变量的输出层,即其值在每个批次中更新的张量。
为了使一切更清楚,以下是我想做的事情的片段:
def call(self, inputs)
c = self.constant
m = self.extra_constant
update = inputs*m + c
X_new = self.X_old + update
outputs = X_new
self.X_old = X_new
return outputs
Run Code Online (Sandbox Code Playgroud)
这里的想法很简单:
X_old
中初始化为0def__ init__(self, ...)
update
被计算为层输入的函数X_new
)X_old
设置为等于X_new
,以便在下一批中X_old
不再等于零,而是等于X_new
前一批。我发现它K.update
可以完成这项工作,如示例所示:
X_new = K.update(self.X_old, self.X_old + update)
Run Code Online (Sandbox Code Playgroud)
这里的问题是,如果我尝试将层的输出定义为:
outputs = X_new
return outputs
Run Code Online (Sandbox Code Playgroud)
当我尝试 model.fit() 时,我会收到以下错误:
ValueError: An operation has `None` for gradient. Please make sure that all of …
Run Code Online (Sandbox Code Playgroud)