Я хочу интегрировать свою среду в тренажерный зал openAI, а затем использовать стабильную базовую библиотеку для ее обучения.
ссылка на стабильную базовую линию:
https://stable-baselines.readthedocs.io/
В стабильном базовом методе обучения используется однострочное обучение, и у вас нет доступа к действиям, предпринятым во время обучения.
model.learn(total_timesteps=10000)
Более конкретно, вы этого не делаете сделайте строку, в которой вы делаете выборку из окружения, в своем коде:
action = space.sample()
Однако мне нравится добавлять логи c в место, где я выбираю действие следующего состояния и отклоняю некоторые действия, которые логика c к ним не относится (например, нелегальные ходы на шахматной доске), что-то вроде:
for _ in range(1000):
action = env.space.sample()
if some_logic(action):
continue
один из способов сделать это - написать оболочку для функции sample_space sample () и только выбрать законные действия. Как здесь class DiscreteWrapper(spaces.Discrete)
в следующей ссылке:
https://github.com/rockingdingo/gym-gomoku/blob/master/gym_gomoku/envs/gomoku.py
Но проблема в том, что стабильная базовая линия принимает только определенные типы данных и не позволяет что либо.
Как я могу сделать это так, чтобы это было интегрировано в стабильную базовую структуру и не нарушало критерии стабильных базовых показателей? Если это вообще невозможно, знает ли кто-нибудь систему обучения с подкреплением, которая, в отличие от стабильного базового уровня, предоставляет доступ к действиям?