在TensorFlow中使用客户端/服务器架构的Comma.ai自动驾驶汽车神经网络,为什么?

时间:2017-10-17 09:39:41

标签: machine-learning tensorflow client-server keras

在comma.ai的self-driving car software中,他们使用客户端/服务器架构。两个流程分别启动,server.pytrain_steering_model.py.

server.py通过http和套接字将数据发送到train_steering_model.py

为什么他们使用这种技术?这不是一种复杂的数据发送方式吗?是不是更容易让train_steering_model.py自己加载数据集?

1 个答案:

答案 0 :(得分:0)

存储库中的文档DriveSim.md链接到标题为Learning a Driving Simulator的文章。在论文中,他们指出:

  

由于问题的复杂性,我们决定学习可分离网络的视频预测。

他们还提到他们使用的帧速率为5 Hz。

虽然这句话是唯一一个解决你的问题的句子,并且它并不完全清楚,但让我们分解有问题的任务:

  • 从相机中抓取图像
  • 预处理/缩减采样/标准化图像像素
  • 通过自动编码器传递图像以提取代表性特征向量
  • 将自动编码器的输出传递给预测正确转向角度的RNN

"问题的复杂性"指的是他们处理的是一系列大型图像(正如他们在论文中所说的那样)"高度不相关。"正在进行许多不同的任务,因此网络方法更加模块化 - 除了允许它们并行工作外,它还允许扩展组件,而不会受到单个硬件达到其阈值计算能力的瓶颈。 。 (并且只是想一想:这只是转向方面。Logs.md文件列出了车辆的其他组件,担心这个神经网络没有解决这个问题 - 汽油,制动器,眼罩,加速等。)。

现在让我们快速实现自动驾驶车辆的实际应用。肯定会有多个神经网络在车辆上运行,每个神经网络都需要限制尺寸 - 微型计算机或嵌入式硬件,计算能力有限。因此,对于一个组件可以做多少工作,天然上限是自然的。

将所有这些结合在一起的事实是,汽车已经使用网络架构进行操作 - CAN bus实际上是车辆内部的计算机网络。因此,这项工作只是计划使用已经存在的网络将一些极其复杂的任务分配给许多分布式组件(功能有限)。

相关问题