目录
一、说明
二、步骤
1. 下载
2.配置环境
3.替换
4.测试
5.训练
一、说明
该项目是 针对B站UP主 林亦LYi 的作品 格斗之王!AI写出来的AI竟然这么强!的使用指南,目的是在帮助更多小白轻松入门,一起感受AI的魅力。
林亦LYi项目代码:GitHub - linyiLYi/street-fighter-ai: This is an AI agent for Street Fighter II Champion Edition.
二、步骤
1. 下载
直接下载林亦LYi项目代码,或者从我的备份下载https://github.com/JizhiXiang/video-for-Street-Fighter-Ai,数据量更小更快,或者从我上传的CSDN附件下载。
2.配置环境
# 创建 conda 环境,将其命名为 StreetFighterAI,Python 版本 3.8.10
conda create -n StreetFighterAI python=3.8.10
conda activate StreetFighterAI# 安装 Python 代码库
cd [项目上级文件夹]/street-fighter-ai/main
pip install -r requirements.txt# 运行程序脚本定位 gym-retro 游戏文件夹位置
cd ..
python .\utils\print_game_lib_folder.py
注意事项:
pip安装的库最好按照指定的版本,比如
gym==0.21.0
gym-retro==0.8.0
stable-baselines3==1.7.0
否则运行时可能出现各种意想不到的bug。
如果下载速度太慢,可以更改国内镜像,百度搜索关键词“pip 清华源”等。
3.替换
左边为执行python .\utils\print_game_lib_folder.py后得到的路径,右边为下载代码data的路径,将右边的全部复制(替换)到左边去。
4.测试
cd [项目上级文件夹]/street-fighter-ai/main
python test.py
注意:直接加载原作者的模型是有可能跑不通的,(你自己训练的模型是能跑通的),shape不匹配,要做一下reshape操作,代码如下:
# 参考https://github.com/linyiLYi/street-fighter-ai/issues/16#issuecomment-1515463967
# if not RANDOM_ACTION:
# # 如果是你自己训练的模型
# model = PPO.load(os.path.join(MODEL_DIR, MODEL_NAME), env=env)
if not RANDOM_ACTION:# 如果你使用的是linyiLYi提供的模型keys = ['high', 'low', 'bounded_above', 'bounded_below']setattr(env.observation_space, '_shape', (3,100,128))for k in keys:new_attr = getattr(env.observation_space, k).reshape(3,100,128)setattr(env.observation_space, k, new_attr)model = PPO.load(os.path.join(MODEL_DIR, MODEL_NAME), env=env,custom_objects = {'observation_space': env.observation_space, 'action_space': env.action_space})
5.训练
cd [项目上级文件夹]/street-fighter-ai/main
python train.py
注意,不会打印输出东西,而是会在./main/logs/中可以查看训练曲线,在./main/trained_models中保存模型和training_log.txt日志文件。
在执行命令过程中,如果想退出,按Ctrl+C键。
6.曲线
cd [项目上级文件夹]/street-fighter-ai/main
tensorboard --logdir=logs/
正常情况应该会出图,如果出现下面情况,查看Log directory是否正确。如果不对,可以将尝试修改默认端口等操作。(有的是jiang改成绝对路径)
如果使用VScode,可以直接Ctrl+Shift+P,输入tensorboard,然后按照提示选择文件夹路径即可启动,如下: