使用keras rl编写强化学习DQN智能体环境,导入依赖库失败
#导入第一段依赖
from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten
from keras.optimizers import Adam
#导入第二段依赖
from rl.agents.dqn import DQNAgent
from rl.policy import BoltzmannQPolicy
from rl.memory import SequentialMemory
首先需要安装tensorflow和keras-rl(导入依赖遇到问题之后看到有人说需要安装keras-rl2,所以我还安装了keras-rl2),首先激活虚拟环境(gymlab),运行以下代码
pip install --upgrade tensorflow
pip install keras-rl
pip install keras-rl2
在此期间遇上任何依赖的版本报错,根据提示转换版本即可,例如我遇到了如下错误
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow 2.15.0.post1 requires wrapt<1.15,>=1.11.0, but you have wrapt 1.16.0 which is incompatible.
解决办法为根据提示重新安装该依赖的版本
pip uninstall wrapt
pip install wrapt==1.14.0
安装tensorflow时会自动安装keras,故不需要单独再安装keras,自此导入第一段依赖成功,但是导入第二段依赖会报错
cannot import name '__version__' from 'tensorflow.keras'
解决方法,根据该路径找到callbacks.py文件
/home/用户名/anaconda3/envs/虚拟环境名/lib/python3.9/site-packages/rl/callbacks.py
然后找到from tensorflow.keras import __version__ as KERAS_VERSION进行更改
更改前:from tensorflow.keras import __version__ as KERAS_VERSION
更改前:from keras import __version__ as KERAS_VERSION