imlearn is a Python library for imitation learning. At the moment, the only method implemented is the one described in:
Agile Off-Road Autonomous Driving Using End-to-End Deep Imitation Learning. Y. Pan, C. Cheng, K. Saigol, K. Lee, X. Yan, E. Theodorou and B. Boots. Robotics: Science and Systems (2018).
imlearn is a generic framework for imitation learning in Python. The framework itself does not depend on a particular choice of neural network library, for example. See the learners.py
file and the KerasLearner
class to learn more about how to integrate your choice of neural network framework into imlearn.
Using imlearn requires implementing interfaces to your expert, environment, and learner.
Experts provide an interface to an autonomous or human controller for the system of interest. Your implementation should inherit from Expert
and implement the appropriate interfaces.
Environments provide an interface to the system to be controlled. Your implementation should inherit from Environment
and implement the appropriate interfaces.
Learners are an interface to the learning model. We provide a KerasLearner
out of the box and you can easily extend the software to your choice of neural network framework using the Learner
interface class. For KerasLearner
, you should just pass in an instance of your Keras neural network to a KerasLearner
instance.
Running an experiment using imlearn involves instantiating your expert, environment, and learner, and then passing them to the algorithm. For a complete example, usable example using the AutoRally platform's simulator, see our repository for Imitation Learning with AutoRally. Note that the AutoRally software needs to be correctly installed, so please visit the AutoRally website.
Keuntaek Lee, Kamil Saigol, Gabriel Nakajima An, Yunpeng Pan
If you use imlearn in your work, please cite:
Agile Off-Road Autonomous Driving Using End-to-End Deep Imitation Learning. Y. Pan, C. Cheng, K. Saigol, K. Lee, X. Yan, E. Theodorou and B. Boots. Robotics: Science and Systems (2018).