Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

KitStandart/rl_lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

193 Commits

Repository files navigation

Добро пожаловать в RL_Lib: библиотеку обучения с подкреплением на базе TensorFlow!

RL_Lib - это мощный и гибкий инструмент для обучения алгоритмов с подкреплением с использованием моделей на TensorFlow.
Мы предоставляем реализацию нескольких популярных алгоритмов обучения с подкреплением, которые легко можно интегрировать в собственные проекты или использовать в нашей готовой обертке обучения.

Основные возможности RL_Lib:

  1. Реализация различных алгоритмов: RL_Lib предоставляет готовые реализации DQN, DRQN, QR-DQN и Ape-X. Вы можете использовать их "из коробки" или настраивать под свои нужды.
  2. Интеграция с TensorFlow: Вам не нужно изучать новый фреймворк. Все алгоритмы написаны с использованием TensorFlow, поэтому вы можете использовать свои собственные модели на базе Keras, TensorFlow или любые другие совместимые модели.
  3. Гибкость и настраиваемость: RL_Lib предоставляет множество параметров и опций для настройки обучения алгоритмов под ваши задачи.
  4. Мощные буферы: Для хранения и обработки данных RL_Lib предоставляет различные буферы, включая обычные и приоритетные буферы, а также n-step буферы.
  5. Сохранение этапов обучения: Вы можете сохранять прогресс обучения для последующего использования или воспроизведения.
  6. Использование обертки обучения: Упростите процесс обучения, используя готовую обертку, которая выполняет все необходимые действия в среде для обучения алгоритма. Она автоматически обрабатывает состояния, действия, награды и т. д.

Мы стремимся предоставить простой, но мощный инструмент для обучения агентов с подкреплением, который позволит вам быстро и эффективно исследовать различные алгоритмы и применять их в реальных задачах. Добро пожаловать в RL_Lib - ваш надежный партнер в обучении с подкреплением!

Текущие алгоритмы

  • DQN и его модификации
  • DRQN
  • DDPG

Базовое использование

Создание алгоритма по умолчанию (конфиг можно посмотреть в папке алгоритма):

from rl_lib.src.algoritms.dqn.dqn import DQN
config = {'model_config':{}}
config['model_config']['input_shape'] = env.observation_space.shape
config['model_config']['action_space'] = env.action_space.n
algo = DQN(config)

Создание алгоритма пользовательского алгоритма:

from rl_lib.src.algoritms.dqn.dqn import DQN
from yaml import safe_load
path = #путь к файлу конфигурации
config = safe_load(
 open(
 os_path.join(
 os_path.dirname(path),"./config.yaml"
 ),
 "rb")
 )
config['model_config']['input_shape'] = env.observation_space.shape
config['model_config']['action_space'] = env.action_space.n
algo = DQN(config)

Основные методы алгоритма

Сохранение и загрузка сохраненного алгоритма:

algo.save()
algo.load()

Предсказание действия с политикой исследования:

algo.get_action(obs)

Предсказание тестового действия:

algo.get_test_action(obs)

Обучение:

sardsn = (obs, action, reward, done, next_obsv) #именно в таком порядке
algo.add(sardsn)
algo.train_step() #Один шаг грандиентного спуска
algo.copy_weights() #Копирование весов learner -> target (если tau == 1.0)

Обновление внутреннего состояния алгоритма происходит автоматически. \

Для рекуррентной модели drqn метод инициализации состояния:

algo.initial_state()

Пример использования можно посмотреть:

└──examples
 ├──dqn
 └──cart_pole
 ├──config.yaml
 └──dqn_cart_pole.py
 └──drqn
 └──cart_pole
 ├──config.yaml
 └──drqn_cart_pole.py

Будущее проекта

  • Реализация алгоритмов:
    • QR-DQN
    • IQN
    • A2C
    • TD3
    • Ape-X
    • RD2D
    • Bandits
  • Добавление LaziFrames в буферы сохранения
  • Написание обертки шагов обучения в среде
  • Реализация записи статистики обучения

About

Исследовательская библиотека обучения с подкреплением.

Topics

Resources

Stars

Watchers

Forks

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /