Как использовать Tensorflow tf.nn.Conv2d одновременно для обучения и прогнозирования? - PullRequest
0 голосов
/ 29 ноября 2018

Я сейчас углубляюсь в тензорный поток и немного озадачен правильным использованием tf.nn.Conv2d(input, filter, strides, padding).Хотя на первый взгляд все выглядит просто, я не могу разобраться в следующей проблеме:

Использование filter, strides, padding мне понятно.Однако, что не ясно, так это правильное применение input.

Я исхожу из задачи Atari (Pong) обучения с подкреплением, в которой я хочу использовать сеть для пакетного обучения И (с определенной вероятностью) также для прогнозов на каждом этапе.Это означает, что для обучения я подаю в сеть полную партию, скажем, 100, каждая единица состоит из 3 кадров с размерами 160, 128. При использовании тензорного потока NHWC мой ввод в input будет tf.placeholderформа (100,160,128,3).Поэтому для обучения я кормлю 100 пакетов размером 160x128x3.

Однако, при прогнозировании выходов из моей сети (повышение или понижение с помощью переключателя понг) в определенной ситуации я питаю сеть только один пакет из 160x128x3 (то есть одна упаковка из трех кадров).Теперь это где тензорный поток падает.Он ожидает (100,160,128,3), но получает (1,160,128,3).

Теперь я озадачен.Я, очевидно, не хочу устанавливать размер партии в 1 и всегда кормить только одну упаковку для обучения.Но как я могу продолжить здесь?Как это будет реализовано с tf.nn.conv2d?

Очень признателен, если кто-то не сможет направить меня сюда в правильном направлении

Заранее спасибо за вашу помощь!Kevin

1 Ответ

0 голосов
/ 29 ноября 2018

Вам необходимо установить свой заполнитель следующим образом: tf.placeholder (shape = (None, 160,128,3) ....), так как в первом измерении значение None указано, ваш заполнитель будет гибким для любого значения, которое вы вводите 1или 100.

...