|
介入:Racoon X
用深度進修當「外挂」,本文将教你若何用 PyTorch 在GTA 5 中練習主動駕驶模子。
最新一代的侠盗猎車手 GTA 5 是如许一款遊戲,它内含一個故事驱動的高度自由化持久藥,世界,以致於遊戲推出以後,不少人在通關以後(或一點剧情没打)會測验考试不少很是规的弄法。调解遊戲中的物理参数、當一個遵纪遵法的「大好人」,乃至在遊戲里進修侧方位泊車帮忙考駕照……
對付 AI 開辟者来讲,GTA 5 有一個巨大的虚拟世界,咱們在内里可以開車。以是為甚麼不克不及用来練習主動駕驶呢?在新冠疫情時代,咱們打遊戲的時候不竭增长,進而發生了斗胆的設法。
項目简介
這是一個利用深层神經收集并應用监視進修實如今 Grand Theft Auto V 中主動駕驶的開源項目。項目利用 PyTorch 编寫,并利用了 Nvidia 的 Apex 扩大库,支撑夹杂精度練習與揣度,至多约莫有两倍的速率晋升。練習後護肝茶, 模子在駕驶時的计谋是仿照人玩 GTA 時的操作,其實不會去遵照遊戲里的交通法則。比方:地板油在街道上穿行,并避讓其他車辆與行人。當在遊戲中設置好方针點後,練習好的模子可以或许自立地駕驶到對應方针點。
項目地點:
項目利用人工標识表記標帜的数据来練習深层神經收集,即起首記實下流戏中的画面已人玩遊戲時的键盘操作,以後利用该数据集来練習神經收集模子。
這里必要指出的是,本項目只是用 GTA V 作為主動駕驶的例子,理論上其可用於肆意一款駕驶的電子遊戲中。下图為利用練習後模子举行主動駕驶的结果展現。
总體框架
此前大大都測验考试在電子遊戲中實現主動駕驶的模子均包括有深层卷积神無暇氣墊粉餅,經收集(凡是是 Inception 或 Resnet)。這些模子以单一图象作為输入。當你看到以下如许一张图象時你會作出甚麼样的反响呢?
這個項目包括了所有效於天生練習数据、举行模子練習和利用練習好的模子在遊戲中主動駕驶的文件。全部項目利用 Python 3 编寫。作者仅在 Windows 10 體系下举行了測试,究竟结果大大都人都是在 Win 10 操作體系下玩的 PC 遊戲,Linux 和 Mac 上的遊戲仍是比力偏小眾一些。
依靠情况
運行本項目必要安装的依靠情况以下:
Pytorch
Torchvision
Nvidia Apex (only for FP16 trai除膠噴霧,ning)
numpy
cupy (optional but highly reco妹妹ended especially for training the model, 10x speed up in data preprocessing comparated with numpy)
cv2 (opencv-python)
glob
h5py
json
win32api (PythonWin) - Should be installed by default in newest Python versions (Python 3.7 reccomended)
天生練習数据集
起首将遊戲設置為桌面模式,辨别率設置為 1600x900,将遊戲窗口移到桌面左上角位置,以下图所示:
python generate_data.py --save_dir tedd1007raining_data
该步伐會主動地捕获屏幕并天生用於練習的样本。這些文件将會被保留為「training_dataX.npz」。從新運行以上代码時不消担忧原数据集被笼盖,步伐會主動檢測目次中是不是已存在数据集文件。利用 Q + E 遏制采集数据。
練習模子
利用以下代码對模子举行練習:
python train.py --train_new
--train_dir tedd1007raining_datarain
--dev_dir tedd1007raining_datadev
--test_dir tedd1007raining_dataest
--output_dir tedd1007models
--batch_size 10
--num_epochs 5
--fp16
此中--fp16 可以或许讓咱們利用夹杂精度練習(必要显卡支撑半精度浮點運算,如:RTX 2000、RTX Titan、Titan V、Tesla V100 等),利用了 Nvidia 的 Apex 扩大库:。練習模子必要损耗大量的显存,項目作者把 batch size 設置為 15 在 RTX 2080 长進行練習。
利用以下代码從保留的 checkpoint 中继续練習:
python train.py --continue_training
--train_dir tedd1007raining_datarain
--dev_dir tedd1007raining_datadev
--test_dir tedd1007raining_dataest
--output_dir tedd1007models
--batch_size 10
--num_epochs 5
--checkpoint_path tedd1007checkpointepoch1checkpoint.pt
運行模子
練習完成以後,接下来便可以看 AI 是若何「開車」的了。利用以下号令運行模子:
python run_TEDD1104.py --model_dir D:GTAV-AImodels --show_current_control --fp16
假設读者的 GPU 有 tensor core 的话(如 RTX 2000、RTX Titan、Titan V、Tesla V100 等),举薦利用--fp16,可以或许将推理速率约莫晋升 2 倍并只损耗一半的显存。
GTA 5 里的载具手感和极品飛車等遊戲有所分歧,對付手蓮子芯,残的咱們来讲撞墙在所不免。自從進修了人工智能,一切看来變得有了但愿。 |
|