Я сейчас углубляюсь в тензорный поток и немного озадачен правильным использованием 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