Lightning implementation of Implicit Behavioral Cloning.
pip install git+https://github.com/nomutin/IBC-Lightning.git
from torch import randn, nn
from ibc_lightning import IBC
states, actions = randn(10, 50, 64), randn(10, 50, 2)
ibc = IBC(
state_encoder=nn.Linear(64, 16),
energy_head=nn.Linear(16 + 2, 1),
lower_bounds=(-1.0, -1.0),
upper_bounds=(+1.0, +1.0),
)
# Predict energy
energy = ibc.forward(states=states, actions=actions)
# Predict action (derivative-free optimization)
action = ibc.inference(state=states[:, -1, :])
Training script is in ./example/.
uv sync --extra train
poe train fit --config examples/config.yaml --trainer.devices [x]
@software{zakka2021ibc,
author = {Zakka, Kevin},
month = {10},
title = {{A PyTorch Implementation of Implicit Behavioral Cloning}},
url = {https://github.com/kevinzakka/ibc},
version = {0.0.1},
year = {2021}
}
@misc{florence2021implicit,
title = {Implicit Behavioral Cloning},
author = {Pete Florence and Corey Lynch and Andy Zeng and Oscar Ramirez and Ayzaan Wahid and Laura Downs and Adrian Wong and Johnny Lee and Igor Mordatch and Jonathan Tompson},
year = {2021},
eprint = {2109.00137},
archivePrefix = {arXiv},
primaryClass = {cs.RO}
}