got*_*ch4 7 python keras keras-layer
所以我正在尝试使用提供的示例在 Keras 中实现我自己的层:
class MyLayer(Layer):
def __init__(self, output_dim, **kwargs):
self.output_dim = output_dim
super(MyLayer, self).__init__(**kwargs)
def build(self, input_shape):
# Create a trainable weight variable for this layer.
self.kernel = self.add_weight(name='kernel',
shape=(input_shape[1], self.output_dim),
initializer='uniform',
trainable=True)
super(MyLayer, self).build(input_shape) # Be sure to call this somewhere!
def call(self, x):
return K.dot(x, self.kernel)
def compute_output_shape(self, input_shape):
return (input_shape[0], self.output_dim)
Run Code Online (Sandbox Code Playgroud)
我注意到,当我这样做时,正在调用的内容会在构建时被调用:
model.add(MyLayer(4, input_dim=(1))
Run Code Online (Sandbox Code Playgroud)
发生这种情况时无需调用 fit、train、predict 等...
为什么?
小智 5
它将在您将图层添加到模型时调用以检查形状是否有效。
如果您想查看它被调用的位置,请更改您的代码:
import sys
import traceback
class MyLayer(Layer):
....
def call(self, x):
traceback.print_stack(file=sys.stdout)
return K.dot(x, self.kernel)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1391 次 |
| 最近记录: |