2
いくつかのTensorflowサポートでKeras Customレイヤーを構築しています。その前に、コール機能にTensorflowのconv2d
を使用してKerasレイヤーを書き込むと、Convolution2Dレイヤーが正常に動作するかどうかをテストしたかったのです。KerasがKerasカスタムレイヤーのパラメータ数を計算できません
class Convolutional2D(Layer):
def __init__(self, filters=None, kernel_size=None, padding='same', activation='linear', strides=(1,1), name ='Conv2D', **kwargs):
self.filters = filters
self.kernel_size = kernel_size
self.padding = padding
self.activation = activation
self.strides = strides
self.name = name
self.input_spec = [InputSpec(ndim=4)]
super(Convolutional2D, self).__init__(**kwargs)
def call(self, input):
out = tf.layers.conv2d(inputs=input, filters=self.filters, kernel_size=self.kernel_size, strides=self.strides, padding=self.padding,
data_format='channels_last')
return(out)
def compute_output_shape(self, input_shape):
batch_size = input_shape[0]
width = input_shape[1]/self.strides[0]
height = input_shape[2]/self.strides[1]
channels = self.filters
return(batch_size, width, height, channels)
def get_config(self):
config = {'filters': self.filters, 'kernel_size': self.kernel_size, 'padding': self.padding, 'activation':self.activation, 'strides':self.strides,
'name':self.name}
base_config = super(Convolutional2D, self).get_config()
return dict(list(base_config.items()) + list(config.items()))
def build(self, input_shape):
self.input_spec = [InputSpec(shape=input_shape)]
これは正しくコンパイルが、私はmodel.summary()
を使用する場合には、この層のためのパラメータの数を計算しません。
モデルのパラメータの総数を確認するときに、この層の学習可能なパラメータの数が含まれるようにするにはどうすればよいですか?
字下げを修正してください。 – DJK
あなた自身の答えを受け入れるべきです - 逆にそれは間違っていません。https://stackoverflow.com/help/self-answer – desertnaut