2016-09-13 3 views
4

У меня есть модель тензорного потока (сверточная нейронная сеть), которую я успешно обучил с помощью градиентного спуска (GD) на некоторых входных данных.Tensorflow: оптимизируйте вход с градиентным спуском

Теперь, на втором этапе, я хотел бы предоставить входное изображение в качестве инициализации и оптимизировать его по этому входному изображению с помощью фиксированных параметров сети с использованием GD. Функция потерь будет другой, но эта деталь.

Итак, мой главный вопрос заключается в том, чтобы сказать градиентный алгоритм спуска к - остановить оптимизацию параметров сети - оптимизировать над входным изображением

Первыми, вероятно, может сделать с этим Holding variables constant during optimizer

У вас, ребята, есть идеи по второму вопросу?

Я думаю, что я могу сам перекодировать алгоритм градиентного спуска, используя функцию градиента TF, но мое чувство кишки говорит мне, что должен быть более простой способ, который также позволяет мне использовать более сложные варианты GD (Adam и т. Д.), ,

Спасибо! Christian

+0

Вы нашли ответ? – neouyghur

+0

Нет, я этого не делал. Фактически я сам кодировал SGD-алгоритмы. – Flonks

ответ

1
  1. представляют изображение как tf.Variable с trainable=True
  2. инициализирует эту переменную с исходным изображением (первоначальное предположение)
  3. воссоздать граф NN с помощью переменных TF с trainable=False и скопировать веса от обученного Н.Н. графа используя tf.assign
  4. вычислить функцию потерь
  5. заткните потери в любой алгоритм Оптимизатор TF вы хотите
+0

Спасибо. Я решил это, используя мою собственную версию SGD ... и с тех пор перешел на PyTorch. – Flonks

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