Получение вывода до нелинейной активации в Керасе - PullRequest
0 голосов
/ 23 декабря 2018

Как получить значение до активации, когда я использую следующий синтаксис для определения слоя в Keras:

model.add(Convolution2D(128, 5, 5, activation='relu'))

Я знаю, что могу просто использовать:

model.add(Convolution2D(128, 5, 5))
model.add(Activation('relu'))

и получить вывод из первого слоя, но возможно ли это при использовании первого синтаксиса?

1 Ответ

0 голосов
/ 23 декабря 2018

Нет, вы не можете сделать это простым способом, так как функция активации применяется сразу после получения результата свертки при реализации слоя свертки в Keras:

if self.rank == 2:
    outputs = K.conv2d(
        inputs,
        self.kernel,
        strides=self.strides,
        padding=self.padding,
        data_format=self.data_format,
        dilation_rate=self.dilation_rate)

if self.activation is not None:
    return self.activation(outputs)
return outputs

Хотя вы можете написать собственный код для выполнения свертки и определить пользовательскую функцию для получения необработанных результатов свертки.Другой вариант - написать свой собственный слой свертки (не волнуйтесь, это так легко сделать!), Который имеет два выхода: результат применения свертки и результат применения функции активации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...