Как реализовать дырявый relu с помощью функций Numpy

Я пытаюсь реализовать дырявый Relu, проблема в том, что мне нужно сделать 4 цикла for для 4-мерного массива ввода.

Есть ли способ, которым я могу сделать дырявый relu только с помощью функций Numpy?


person Liu Hantao    schedule 24.05.2018    source источник


Ответы (2)


Вот два подхода к реализации leaky_relu:

import numpy as np                                                 

x = np.random.normal(size=[1, 5])

# first approach                           
leaky_way1 = np.where(x > 0, x, x * 0.01)                          

# second approach                                                                   
y1 = ((x > 0) * x)                                                 
y2 = ((x <= 0) * x * 0.01)                                         
leaky_way2 = y1 + y2  
person Amir    schedule 15.01.2019
comment
второй подход немного быстрее! - person Anu; 29.03.2019

Отходя от записи в википедии для дырявого relu, вы сможете сделать это с помощью простой функции маскирования.

output = np.where(arr > 0, arr, arr * 0.01)

Везде, где вы выше 0, вы сохраняете значение, везде вы заменяете его на arr * 0,01.

person Lzkatz    schedule 24.05.2018