《格斗之王AI》使用指南

目录

一、说明

二、步骤

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,然后按照提示选择文件夹路径即可启动,如下:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/89251.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何定位线上CPU飙高的问题

1.问题情景 我们的接口卡死,CPU飙高到打不开的网页 2.问题定位 2.1 top指令 通过top命令找到CPU耗用最厉害的那个进程的PID 直接输入top Linux下的100%代表一个核心,如果是八核,最高可以到800%,这样才算满 然后通过PID找到CP…

微服务——es数据聚合+RestClient实现聚合

数据聚合 聚合的种类 DSL实现Bucket聚合 如图所示,设置了10个桶,那么就显示了数量最多的前10个桶,品牌含有7天酒店的有30家, 品牌含有如家的也有30家。 修改排序规则 限定聚合范围 DSL实现Metrics聚合 如下案例要求对不同的品…

EVE-NG 隐藏没有镜像的模板

eve-ng 默认情况下,在添加node时,会列出所有的模板,这样用着很不方便。 通过以下方式,可以使没有设备的模板不可见 cp /opt/unetlab/html/includes/config.php.distribution /opt/unetlab/html/includes/config.php 打开 config…

遍历集合List的五种方法以及如何在遍历集合过程中安全移除元素

一、遍历集合List的五种方法 测试数据 List<String> list new ArrayList<>(); list.add("A");list.add("B");list.add("C");1. 普通for循环 普通for循环&#xff0c;通过索引遍历 for (int i 0; i < list.size(); i) {Syst…

React实现点击切换组件

实现如上组件 组件代码&#xff1a; import { SwapOutlined } from "ant-design/icons" import React, { useState } from "react" import ./index.lessinterface ISwitchTypeProps {onChange?: (val) > booleanactiveKey?: stringleft: { key: str…

路由器和交换机的区别

交换机和路由器的区别 交换机实现局域网内点对点通信&#xff0c;路由器实现收集发散&#xff0c;相当于一个猎头实现的中介的功能 路由器属于网络层&#xff0c;可以处理TCP/IP协议&#xff0c;通过IP地址寻址&#xff1b;交换机属于中继层&#xff0c;通过MAC地址寻址(列表)…

Fiddler模拟请求发送和修改响应数据

fiddler模拟伪造请求 方法一&#xff1a;打断点模拟HTTP请求 1、浏览器页面填好内容后&#xff08;不要操作提交&#xff09;&#xff0c;打开fiddler&#xff0c;设置请求前断点&#xff0c;点击菜单fiddler,”Rules”\”Automatic Breakpoints”\”Before Requests” 2、在…

实验二十七、电压传输特性的测量

一、题目 利用 Multisim 测试图1 所示各电路的电压传输特性。 图 1 电压比较器 图1\,\,电压比较器 图1电压比较器 二、仿真注意事项 &#xff08;1&#xff09;仿真电路所有的 A \textrm A A 均采用虚拟电压比较器。合理选择稳压管的限流电阻&#xff0c;使其既稳压又不至于…

JavaScript应用:五子棋游戏实战开发

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责…

Python Selenium 设置带账号密码的socks5代理,启动浏览器

selenium添加带有账密的socks5代理 我们都知道在使用selenium开发爬虫的时候不可避免的会使用socks5高匿名代理。一般情况下我们使用方法如下(开发语言为python)&#xff1a; from selenium import webdriver chrome_options webdriver.ChromeOptions() chrome_options.add_…

【探索SpringCloud】服务发现-Nacos使用

前言 在聊服务注册中心时&#xff0c;便提到了Nacos。这次便来认识一下。当然&#xff0c;这自然没有官方介绍那般详尽&#xff0c;权当是学习了解Nacos原理的一个过程吧。 Nacos简介 Nacos&#xff0c;全名&#xff1a;dynamic Naming And Configuration Service. 而这个名…

PHP智能人才招聘网站mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP智能人才招聘网站 是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 下载地址 https://download.csdn.net/download/qq_41221322/88199392 视频演示 PH…

【MAC】 M2 brew安装 docker 运行失败 解决

MAC 安装 brew install --cask docker 之后一直显示docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. 网上看了一些文章 发现 这个不适用于M2 所以要从官网上下载 docker 安装成功

多线程与并发编程面试题总结

多线程与并发编程 多线程 线程和进程的区别&#xff1f; 从操作系统层面上来讲&#xff1a;进程(process)在计算机里有单独的地址空间&#xff0c;而线程只有单独的堆栈和局部内存空间&#xff0c;线程之间是共享地址空间的&#xff0c;正是由于这个特性&#xff0c;对于同…

产品进行逻辑梳理的三个重点

我们在进行产品方案设计时&#xff0c;需要进行逻辑梳理&#xff0c;这样才能保障产品方案的严谨性&#xff0c;降低后期返工几率。如果我们在接到需求时&#xff0c;直接开始画原型&#xff0c;没有经过逻辑梳理&#xff0c;往往容易造成产品方案纰漏丛生&#xff0c;直接影响…

成集云 | 用友U8采购请购单同步钉钉 | 解决方案

源系统成集云目标系统 方案介绍 用友U8是中国用友集团开发和推出的一款企业级管理软件产品。具有丰富的功能模块&#xff0c;包括财务管理、采购管理、销售管理、库存管理、生产管理、人力资源管理、客户关系管理等&#xff0c;可根据企业的需求选择相应的模块进行集…

【C++入门到精通】C++入门 —— vector (STL)

阅读导航 前言一、vector简介1. 概念2. 特点 二、vector的使用1.vector 构造函数2. vector 空间增长问题⭕resize 和 reserve 函数 3. vector 增删查改⭕operator[] 函数 三、迭代器失效温馨提示 前言 前面我们讲了C语言的基础知识&#xff0c;也了解了一些数据结构&#xff0…

Python爬虫:单线程、多线程、多进程

前言 在使用爬虫爬取数据的时候&#xff0c;当需要爬取的数据量比较大&#xff0c;且急需很快获取到数据的时候&#xff0c;可以考虑将单线程的爬虫写成多线程的爬虫。下面来学习一些它的基础知识和代码编写方法。 一、进程和线程 进程可以理解为是正在运行的程序的实例。进…

优化堆排序(Java 实例代码)

目录 优化堆排序 Java 实例代码 src/runoob/heap/HeapSort.java 文件代码&#xff1a; 优化堆排序 上一节的堆排序&#xff0c;我们开辟了额外的空间进行构造堆和对堆进行排序。这一小节&#xff0c;我们进行优化&#xff0c;使用原地堆排序。 对于一个最大堆&#xff0c;首…

负载均衡搭建

LVS-DR部署 [客户端] node1 192.168.157.148 [lvs] node2 192.168.157.142 [web服务器] node3 192.168.157.145 node4 192.168.157.146&#xff08;1&#xff09;[lvs] yum install -y ipvsadm.x86_64 配置LVS负载均衡服务 &#xff08;1&#xff09;手动添加LVS转发1&#xff…