Как реализовать CRelu в Керасе?

По умолчанию Командная строка подключена к System32. Запустите 64-битную командную строку, то есть C:\WINDOWS\SYSWOW64\CMD.EXE. В этом случае скомпилируйте и запустите приложение Java.

1
задан mrgloom 27 February 2019 в 17:40
поделиться

1 ответ

Я не думаю, что есть существенная разница между двумя реализациями по скорости.

Реализация Lambda на самом деле самая простая, но написание пользовательского слоя, как вы это обычно делаете, обычно лучше, особенно в том, что касается сохранения и загрузки модели (метод get_config ).

Но в этом случае это не имеет значения, поскольку CReLU тривиален и не требует сохранения и восстановления параметров. Вы можете сохранить параметр оси фактически как в коде ниже. Таким образом, он будет получен автоматически при загрузке модели.

class CRelu(Layer):
    def __init__(self, axis=-1, **kwargs):
        self.axis = axis 
        super(CRelu, self).__init__(**kwargs)

    def build(self, input_shape):
        super(CRelu, self).build(input_shape)

    def call(self, x):
        x = tf.nn.crelu(x, axis=self.axis)
        return x

    def compute_output_shape(self, input_shape):
        output_shape = list(input_shape)
        output_shape[-1] = output_shape[-1] * 2
        output_shape = tuple(output_shape)
        return output_shape

    def get_config(self, input_shape):
        config = {'axis': self.axis, }
        base_config = super(CReLU, self).get_config()
        return dict(list(base_config.items()) + list(config.items()))
0
ответ дан Samuele Cornell 27 February 2019 в 17:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: