У меня есть стоимость, которая зависит от двух перечней переменных a
и b
.
Я хочу:Tensorflow control_dependencies не работает со списком
- высчитывает как градиенты стоимости на текущий момент,
- обновление потери w.r.t. первый список переменных (
a
) - обновить потерю w.r.t. второй список переменных (
b
).
В таком порядке.
Для этого я пытался что-то вроде этого:
EDIT: После ответа @Yaroslav Булатова Я попытался следующие:
opt=tf.train.GradientDescentOptimizer(0.001)
grad_cost_wrt_a=opt.compute_gradients(cost,[a])
grad_cost_wrt_b=opt.compute_gradients(cost,[b])
with tf.control_dependencies(grad_cost_wrt_a[0]):
with tf.control_dependencies(grad_cost_wrt_b[0]):
update_wrt_a=opt.apply_gradients(grad_cost_wrt_a)
with tf.control_dependencies([update_wrt_a]):
update_wrt_b=opt.apply_gradients(grad_cost_wrt_b)
Удивление, если это делает правильно? Если a и b - список переменных.
Чтобы быть в состоянии сделать то:
sess.run([update_wrt_a,update_wrt_b],feed_dict={x: x_input, y: y_input})
Во-первых, это не работает, я получаю: не может преобразовать список в Тензор или операцию, но control_dependencies должен Получать список тензоров ...
Тогда бонусный вопрос мне действительно нужны все эти control_dependencies?
Должен знать! жаль, что я пропустил это! Благодаря ! – jean
На самом деле, как вы обрабатываете случай, когда a и b являются списком переменных? – jean
Я отредактировал свой вопрос? Если я использую только зависимость управления от первых градиентов, переменная кортеж работает, как я хочу? – jean