已经很久不用SB3了,现在的体会是之前用SB3的时候的感受,SB3是在之前的hill的stable baselines上改进的,
而hill的stable baselines是tensorflow1写的,都2023年了,谁还用tensorflow1啊,所以在这个基础上改进出来的,是Pytorch版本的。是在baselines直接修改的,只是支持一些常用的强化学习的算法,2018年以后的很多算法都不支持,不知道现在怎么样了。然后也不支持多个GPU的训练。
SB3也有很多优点,这也和它的定位有关,SB3适合新手,只需要简单修改,代码就可以跑起来。
现在主要用的比较多的还是RLlib ray。ray是一套算是比较完整的框架了,然后支持分布式的训练,但是ray的代码比较复杂,
需要一定的基础和对强化学习算法有一定的了解才能使用。但是ray更加灵活,他的生态环境中不只是包括强化学习算法,
还有很多机器学习的算法,然后也可以支持Tensorflow1、Pytorch和Tensorflow2。然后缺点也有,修改代码很麻烦,上手难度也高,
安装的也比较麻烦,有各种依赖。但是ray是从初级走向高级的一个不可缺少的框架。
路线:如果开始学,只是想跑一下基础的算法和实现啥的,那推荐SB3和ElegantRL这两个,其实更加推荐ElegantRL,这个更小,代码量也很少,还支持多GPU训练,也比SB3更加稳定。然后基本算法了解完,就可以考虑试试ray。这个生态挺完善的。