DQN: Доступ к необработанным наблюдениям после преобразования пространства наблюдения в среду Box?

Я адаптирую код Pytorch из курса Табора по DQN (https://github.com/philtabor/Deep-Q-Learning-Paper-To-Code) для работы с библиотекой vizdoomgym, предварительно сумев заставить версию работать в ТФ.

После обучения моего агента я визуализирую его работу как видео в формате.mp4. Раньше я использовал библиотеку SK-video для записи агента в процессе, поскольку собственный класс Monitor не работал с библиотекой VZDgym. Это было достигнуто простым сохранением каждого наблюдения в массив изображений.

Я столкнулся с проблемой, так как код, за которым я следую, вызывает оболочки для преобразования пространства наблюдения в среду Box, в результате изображения фактически искажаются. Эти оболочки можно найти в файле utils.py с основным методом, показанным ниже:

def make_env(env_name, shape=(84,84,1), repeat=4, clip_rewards=False,
             no_ops=0, fire_first=False):
    env = gym.make(env_name)
    env = RepeatActionAndMaxFrame(env, repeat, clip_rewards, no_ops, fire_first)
    env = PreprocessFrame(shape, env)
    env = StackFrames(env, repeat)

    return env

Я заметил, что обертки предварительной обработки наследуют метод наблюдения, а это означает, что я должен иметь доступ к наблюдениям и сохранять их до предварительной обработки. Однако я не знаком с проблемами управления памятью с таким решением, если это вообще возможно? Альтернативный подход состоял бы в том, чтобы попытаться "восстановить" наблюдения из их искаженных представлений обратно в их первоначальную форму, но это не представляется возможным.

Любой совет приветствуется.

1 ответ

Как и предполагалось, оболочка предварительной обработки может быть использована для успешного сохранения кадров до функций предварительной обработки в массиве изображений.

Затем этот массив изображений можно преобразовать в видео в формате.mp4 с помощью библиотеки sk-video. Однако для этого пришлось создать отдельную версию оболочки из-за риска переполнения памяти, поэтому метод не идеален.

Другие вопросы по тегам