2016-02-16 3 views
1

В производных Theano учебник здесь:Значение матрицы не требуется для Lop?

http://deeplearning.net/software/theano/tutorial/gradients.html#tutcomputinggrads

пример Лоб работает без явного значения матрицы W в продукте точки. И, фактически, частные производные в этом случае удаляют значения компонентов W, поэтому они не нужны.

Но, пытаясь нечто подобное с Ропом выдает ошибку:

theano.gof.fg.MissingInputError: ("вход графа, используемый для вычисления точки (Elemwise {второй, no_inplace} .0 ,), не было предоставлено и не дали значение.

Как это отличается?

ответ

0

Theano будет пытаться оптимизировать вычисления графика, но это не всегда работает.

в примере Лоб, Теано может обнаружить, что нам действительно не нужно, чтобы W, но при изменении на Rop это просто невозможно.

ПОЛ пример:

W = T.dmatrix('W') 
v = T.dvector('v') 
x = T.dvector('x') 
y = T.dot(x, W) 
VJ = T.Lop(y, W, v) 
f = theano.function([v, x], VJ) 
f([2, 2], [0, 1]) 

Если я просто изменить y = T.dot(x, W) к y = T.dot(x, W**1), Theano будет не в состоянии сделать оптимизацию и бросить то же самое сообщение об ошибке на меня говорят, что я не предоставил достаточных параметров.

Фактически в примере Rop, если мы изменим значения, заданные для W, это вообще не влияет на результат, поскольку Theano не удалось его оптимизировать.

p.s. Иногда я обнаружил, что документы Theano очень неясны.

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