SB3 для имитационного обучения. Как провести демонстрационную акцию в данном государстве?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 SB3 для имитационного обучения. Как провести демонстрационную акцию в данном государстве?

Сообщение Anonymous »

Я пытаюсь обучить агента RL, используя SB3 (алгоритм PPO), Gymnasium и PyTorch.
Поскольку динамика среды довольно сложна, у меня есть набор данных, содержащий около 200 траекторий, которые я могу использовать в качестве демонстрации. Моя идея состоит в том, чтобы использовать их во время обучения, чтобы каждые n эпизодов проводилась демонстрация. Когда это происходит, я заставляю метод сброса среды выполнять выборку из набора данных. Однако мне трудно заставить эксперта выполнить действие, которое, как я знаю, должно быть выполнено.
Более или менее, я думаю, что нашел точку, в которой мне следует это реализовать. Следующий метод реализован в классе ActorCriticPolicy(BasePolicy) файла policy.py в SB3.

Код: Выделить всё

def forward(self, obs: th.Tensor, deterministic: bool = False) -> Tuple[th.Tensor, th.Tensor, th.Tensor]:
"""
Forward pass in all the networks (actor and critic)

:param obs: Observation
:param deterministic: Whether to sample or use deterministic actions
:return: action, value and log probability of the action
"""
# Preprocess the observation if needed
features = self.extract_features(obs)
if self.share_features_extractor:
latent_pi, latent_vf = self.mlp_extractor(features)
else:
pi_features, vf_features = features
latent_pi = self.mlp_extractor.forward_actor(pi_features)
latent_vf = self.mlp_extractor.forward_critic(vf_features)
# Evaluate the values for the given observations
values = self.value_net(latent_vf)
distribution = self._get_action_dist_from_latent(latent_pi)
actions = distribution.get_actions(deterministic=deterministic)
log_prob = distribution.log_prob(actions)
actions = actions.reshape((-1, *self.action_space.shape))  # type: ignore[misc]
return actions, values, log_prob
Думаю, мне нужно применить такую ​​логику, чтобы, если я запускаю демонстрацию, действия и log_prob должны быть переопределены. Можно было бы получить доступ к переменным среды, где у меня есть переменная класса, которая сохраняет действие, которое должно быть выполнено следующим (при запуске демонстрации).
Я знаю о библиотеке имитации, однако я думаю, что То, что я хочу сделать, в нем недоступно.
Есть ли способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/792 ... iven-state
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»