python - 目标结构会影响神经网络性能吗?
问题描述
我正在构建一个 CNN 来控制视频游戏中的车辆。网络将屏幕截图作为输入,并使用控制器值作为目标。现在我只使用两个控制器值作为目标:-1 和 1 之间的值的转向,以及 0 和 1 之间的油门。我已将转向的值四舍五入为 7 个值,油门为4 个值给了我 28 个不同的类,我将平衡它们(舍入的原因是难以平衡未分类的类)。
我的问题是我是否应该使用单个值目标 1-27(每种情况一个)来训练网络,还是应该使用两个圆形控制器值作为目标(一个数组:[转向,油门])?我知道两者都创建了 28 个目标类,但是目标输出的结构会影响网络的性能吗?这些选项中的一个明显优于另一个吗?
初步测试模型:
'''
model = Sequential()
model.add(Conv2D(24, kernel_size=(5, 5), strides=(2, 2), activation='relu', input_shape= INPUT_SHAPE))
model.add(Conv2D(36, kernel_size=(5, 5), strides=(2, 2), activation='relu'))
model.add(Conv2D(48, kernel_size=(5, 5), strides=(2, 2), activation='relu'))
model.add(Conv2D(64, kernel_size=(3, 3), activation='relu'))
model.add(Conv2D(64, kernel_size=(3, 3), activation='relu'))
model.add(Flatten())
model.add(Dense(1164, activation='relu'))
drop_out = 1 - keep_prob
model.add(Dropout(drop_out))
model.add(Dense(100, activation='relu'))
model.add(Dropout(drop_out))
model.add(Dense(50, activation='relu'))
model.add(Dropout(drop_out))
model.add(Dense(10, activation='relu'))
model.add(Dropout(drop_out))
model.add(Dense(OUT_SHAPE, activation='softsign'))
'''
解决方案
推荐阅读
- reactjs - 如何修复 reactjs 上的错误 POST http://localhost:3000/users.json 404 (Not Found)?
- sql - 使用左连接和内连接进行 Teradata 更新
- ansible - Ansible 复制一个必须为只读且由另一个用户拥有的文件
- symfony - 无法使用 Symfony HttpClient 检索错误消息
- javascript - 如何在生产环境中运行 node.js REST API 应用程序
- node.js - Google Cloud Platform - 使用 puppeteer (Node.js) 优化云功能
- android - 如何创建一个环形(圆形)ShapeDrawable
- python - 如何在熊猫 groupby 直方图中显示标签名称
- json - 如何使用 Postman 检查某个值是否为字符串
- java - 码头字符集 utf-8 与字符集 UTF-8