Вот очень простой вопрос начинающего Теана.Theano logistic SGD с уровнями обучения по размеру
Я пытаюсь изменить логический SGD-код, поставляемый с Deep Learning Tutorials, для перехода от одной скорости обучения к скорости обучения, которая будет специфичной для измерения. Например, если у меня есть 3 входных измерения, я бы хотел использовать 3 разных скорости обучения, по одному на измерение.
Оригинальные соответствующий код является:
learning_rate = 0.1
x = T.matrix('x')
y = T.ivector('y')
classifier = LogisticRegression(input=x, n_in=3, n_out=2)
cost = classifier.negative_log_likelihood(y)
g_W = T.grad(cost=cost, wrt=classifier.W)
g_b = T.grad(cost=cost, wrt=classifier.b)
updates = [(classifier.W, classifier.W - learning_rate * g_W),
(classifier.b, classifier.b - learning_rate * g_b)]
train_model = theano.function(inputs=[],
outputs=cost,
updates=updates,
givens={
x: minibatch_x,
y: minibatch_y})
В NumPy, было бы просто вопрос о замене скорости обучения скалярного с массивом скоростей обучения и выполнить поэлементное умножение с градиентами g_W и G_B , В Theano это приводит к ошибке:
'Expected an array-like object, but found a Variable: maybe you are trying to call a function on a (possibly shared) variable instead of a numeric array?'
Ясно, что есть что-то о Теано, которого я пропускаю. Может ли кто-нибудь просветить меня?