Как реализовать функцию ReLU в Numpy

Я хочу создать простую нейронную сеть, и я хочу использовать функцию ReLU. Может ли кто-нибудь дать мне понять, как я могу реализовать функцию, используя numpy. Спасибо за ваше время!

2 Solutions collect form web for “Как реализовать функцию ReLU в Numpy”

Есть несколько способов.

>>> x = np.random.random((3, 2)) - 0.5 >>> x array([[-0.00590765, 0.18932873], [-0.32396051, 0.25586596], [ 0.22358098, 0.02217555]]) >>> np.maximum(x, 0) array([[ 0. , 0.18932873], [ 0. , 0.25586596], [ 0.22358098, 0.02217555]]) >>> x * (x > 0) array([[-0. , 0.18932873], [-0. , 0.25586596], [ 0.22358098, 0.02217555]]) >>> (abs(x) + x) / 2 array([[ 0. , 0.18932873], [ 0. , 0.25586596], [ 0.22358098, 0.02217555]]) 

Если вы хотите получить результаты с помощью следующего кода:

 import numpy as np x = np.random.random((5000, 5000)) - 0.5 print("max method:") %timeit -n10 np.maximum(x, 0) print("multiplication method:") %timeit -n10 x * (x > 0) print("abs method:") %timeit -n10 (abs(x) + x) / 2 

Мы получаем:

 max method: 10 loops, best of 3: 239 ms per loop multiplication method: 10 loops, best of 3: 145 ms per loop abs method: 10 loops, best of 3: 288 ms per loop 

Таким образом, умножение кажется самым быстрым.

Используйте np.maximum(x, 0, x) . Об этом говорил Даниил С. Это намного быстрее, и потому, что люди могут его игнорировать, я отвечу ему как ответ. Вот сравнение:

 max method: 10 loops, best of 3: 238 ms per loop multiplication method: 10 loops, best of 3: 128 ms per loop abs method: 10 loops, best of 3: 311 ms per loop in-place max method: 10 loops, best of 3: 38.4 ms per loop 
  • Pythonic способ создания массива numpy из списка массивов numpy
  • Почему я не могу получить форму этого массива numpy?
  • преобразование списка строк python в их тип
  • Альтернативы сплавленного типа в цитоне
  • Определенный способ разбора алфавитно-цифровых CSV в Python с scipy / numpy
  • Многомерная нормальная плотность в Python?
  • Когда использовать .shape и когда использовать .reshape?
  • Создайте два массива 2D numpy из списка строк
  • Python - лучший язык программирования в мире.