2016-03-11 1 views
1

я хочу использовать theano.tensor.nnet.relu, но я получаю эту ошибку:Theano AttributeError: «модуль» объект не имеет атрибута «РЕЛУ»

AttributeError: 'module' object has no attribute 'relu' 

Я уже обновил Theano через sudo pip install --upgrade theano команд, как описан в theano's documentation, также я пробовал sudo pip install --upgrade --no-deps theano. Ни сработал, я все равно получаю ту же ошибку.

Я пытался сделать theano -v, чтобы подтвердить, что я установил последнюю версию, но затем я получаю следующее сообщение об ошибке: -bash: theano: command not found

Так что мои два вопроса являются:

  • Как я могу видеть Theano-х версия?
  • Я делаю что-то неправильно при обновлении theano? Как я могу решить упомянутую выше ошибку?

ответ

2

relu доступен для Теана> = 0.7.1. Я предполагаю, что пип связан с theano==0.7.

Вы можете проверить Theano версию с pip freeze:

pip freeze | grep Theano 

Таким образом, вы должны установить последние theano с указанием ПГИ Theano мерзавца репо:

pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git 

также отметить, что РЕЛУ является функцией и не модуль, поэтому для доступа к нему вы должны использовать один из следующих импортов:

from theano.tensor.nnet import relu # access `relu` as is .. 
import theano.tensor.nnet as theano_nnet #access `relu` as `theano_nnet.relu` 
1

Модуль theano.tensor.nnet поддерживает только relu в самых последних версиях. Чтобы использовать его, вам нужно установить версию для устранения кровотечений из github или подождать до следующей версии.

В качестве альтернативы, вы можете реализовать это следующим образом:

def relu(x): 
    return T.maximum(x, 0.) 

Это не может быть Inplace, но это дает результат и градиент.

1
  1. увидеть Theano версию вы можете запустить следующий код:

    import theano 
    print theano.__version__ 
    
  2. Вы должны следовать инструкциям из here, чтобы получить истекающего кровью края версии

Собственно Relu функция прост в кодировке, вы можете создать свою собственную функцию relu, например, ответ на eickenberg, или как theano.tensor.nnet стиль:

def relu(x): 
     return 0.5 * (x + abs(x)) 
+1

Действительно, хорошая точка: в некоторых случаях сумма 'x' и' abs (x) 'была быстрее и также пробивалась в лазаньи, по крайней мере, в начале. – eickenberg

Смежные вопросы