keras name scope - pai-plznw4me/tensorflow_basic GitHub Wiki

keras μ—μ„œμ˜ name scope 에 λŒ€ν•΄ μ„€λͺ…ν•΄ λ³Έλ‹€. layer λ‹¨μ—μ„œ name 을 κ΄€λ¦¬ν•œλ‹€.

SimpleConvBlock 의 layer name 은 block1 이닀. SimpleConvBlock μ•ˆμ— conv_1 의 이름은 conv_1이닀.

tensorflow 와 같이 scope ν˜•νƒœλ‘œ μ μš©λ˜μ§€ μ•ŠλŠ”λ‹€.

sbc = SimpleConvBlock(16, 3, 1, 'same', 'block1')
class SimpleConvBlock(tf.keras.layers.Layer):
    def __init__(self, filters, kernel_size, strides, padding, name, **kwargs):
            super(SimpleConvBlock, self).__init__(name=name, **kwargs)
            self.conv_1 = Conv2D(filters, kernel_size, strides, padding, activation='relu', name='conv_1',
                                 kernel_initializer='he_normal')
            self.conv_2 = Conv2D(filters, kernel_size, strides, padding, activation='relu', name='conv_2',
                                 kernel_initializer='he_normal')
            self.maxpool = MaxPool2D(strides=2, padding='same', name='maxp1_3')

    def call(self, inputs):
        layer = self.conv_1(inputs)
        layer = self.conv_2(layer)
        layer = self.maxpool(layer)
        return layer