神经网络赛车
神经网络学习如何在赛道上驾驶汽车。 使用 pyglet 和 numpy 的简单 2D 模拟。
[视频链接]
[!警告] 这段代码是我早期编程时期的产物。我已经对它进行了重构,但它可能不符合当前的最佳实践。
▶️️ 如何运行?
安装包
pip install -r requirements.txt
[requirements.txt 文件内容链接]
运行主文件
应该可以在 Python 3.0
及更高版本上运行。
例如:
py -3.10 .\__main__.py
或者使用虚拟环境。
配置(可选)
config.json
{
"width": 1280
"height": 720
"friction": 0.1
"render_timestep": 0.025 // 帧之间的时间间隔(秒) - 0.025秒 = 40 FPS
"timeout_seconds": 30 // 每代的最长时间
"population": 40 // 汽车数量
"mutation_rate": 0.6 // 每代后的变异率
}
default_nn_config.json - 新保存的默认汽车配置。
{
"name" : "test"
"acceleration": 1
"friction": 0.95
"max_speed": 30
"rotation_speed": 4
"shape": [6, 4, 3, 2] // 神经网络结构 - 不要改变第一层和最后一层
"max_score": 0
"gen_count": 0
}
🕸️ 神经网络
[神经网络架构图]
🧬 进化
每一代中表现最好的汽车被选为下一代的父母,并进行轻微变异。
🏎️ 环境和赛道生成
[环境图片] | [赛道生成动画] |
---|
⚖️ 许可证
Shield: [CC BY-NC 4.0 许可证徽章]
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
[CC BY-NC 4.0 许可证图片]