1.首先第一步下载anaconda,这里建议大家直接去官网就好,因为现在的速度也已经很快了,其他镜像网站都因为版权原因容易出现各种各样的问题。
官网网址:https://www.anaconda.com/
安装及配置可以参照博文:https://zhuanlan.zhihu.com/p/75717350,详细清晰
2.之后我遇到了一个很神奇的现象,就是我的spyder虽然可以顺利打开(解决了上一版本的问题),但我此时的anaconda却打不开了,我只能打开conda prompt,但点击某绿色软件时却完全无法进入界面,经过一系列谷歌大法,最终解决方法如下:
step1:使用管理员运行:conda prompt
step2:执行命令 conda update anaconda-navigator
step3:执行anaconda-navigator --reset
step4:执行conda update anaconda-client
step5:执行conda update -f anaconda-clien
这上面是照抄的https://blog.csdn.net/weixin_39915444/article/details/106636041博文,然而我在第二步遇到了问题,运行显示:The current user does not have write permissions to the target environment
我当时都有点想要放弃了,毕竟我的主要目标是用spyder,说实话conda打不开对我影响不大,然而在我想要安装gym的时候,居然遇到的同样的提示,显示我没有写入权限。
是可忍孰不可忍!最终找到了问题,因为我对anconda文件夹的权限不够...,参照https://blog.csdn.net/qq_30263737/article/details/113694159博主的方法完成了修改后,继续运行step 2 ,果然,conda也能打开了,gym也能安装了。(PS:现在所有的包似乎都不太支持在prompt里直接conda install了,建议直接打开conda官网去搜索相关包的安装指令)
3.接下来就是顺利打开pycharm开始小试牛刀,参照了gym的示例小文档准备跑一个简单的倒立摆小程序,程序如下:
文档来自于:https://www.cnblogs.com/sixuwuxian/p/16758343.html(人家的版本可以复制粘贴)
结果很顺利,出现了一个小车摆锤
4.接下来就是想要运行一个强化学习程序去控制这个小摆锤了,由于我想研究SAC算法,所以我在网上找到了stable_baselines3的库,里面包括了大部分主流的强化学习算法,其中包括我想要学习的SAC,由于包已经是完全封装好的了,因此只需要在程序中定义所要使用的环境以及一些简单的超参数就可以(经过尝试,SAC算法的温度超参数,噪声等,即使不进行配置,封装包中也有预定的数值,只是试运行的完全没问题)
万能代码如下:
···
import gym
from stable_baselines3import PPO
env=gym.make('Pendulum-v1')
model=PPO('MlpPolicy',env,verbose=1)
model.learn(total_timesteps=5000)
obs=env.reset()
for i in range(900):
? ? ?action,_state=model.predict(obs,deterministic=True)
? ? ?obs,reward,done,info=env.step(action)
? ? ?env.render()
? ? ?if done:
? ? ? ? obs=env.reset()
···
这串代码是我稍微修改过一些的,好处在于SAC这个部分可以随时方便的切换成PPO,TD3之类的其他算法,运行后会出现一个摆锤,为了让运行时间尽可能的短一些,我选择了离线训练和在线实验时间都比较短,因此效果不好,如果你想要好一些的效果请修改:total_timesteps=5000和for i in range(900)这两个部分。
另外说一句题外话,我在一开始用的是spyder执行同样的代码,但始终遇到同样的报错:
TypeError: super(type, obj): obj must be an instance or subtype of type?
这个问题我查询了很多博客都没有特别好的解决办法,但我换成pycharm之后就直接运行成功了...这点也很惭愧,通过换软件的方式debug。
不过经过一天的熟悉,pycharm确实用起来十分愉悦,之后就确定用pycharm了,配置的时候可能会遇到一些问题,只要把报错复制到谷歌基本都能得到解决,这里就不一一赘述了。
下一个部分会更新对在gym环境下自己搭建一个神经网络模型并与SAC等算法进行交互训练。