3D卷积神经网络的实现

时间:2019-06-27 12:18:52

标签: python tensorflow deep-learning conv-neural-network

我正在尝试实施this approach 用于物体检测和跟踪。而且我无法将细节束之高阁。我试图寻找这篇文章的评论和解释。我不明白的是:

  

对于时间信息,我们采用了过去5个时间戳中的所有3D点。因此,我们的输入是一个由时间,高度,X和Y组成的4维张量。对于我们的早期融合模型和晚期融合模型,我们使用Adam优化器从零开始训练,学习率为1e-4。该模型是在批量大小为12

的4 Titan XP GPU服务器上训练的

我知道以下是CNN输入

  

[批量大小,频道,X,Y]

但是他们在这里考虑

  

[时间,频道,X,Y]

然后他们提到批次大小为12!我不明白的是,他们在哪里考虑batch_size,它代表5个时间戳。

我希望有人能提供见解。

由于他们的数据集不是开源的,所以我正在研究KITTI跟踪基准。

1 个答案:

答案 0 :(得分:1)

如果您考虑使用tf.nn.conv3d,则输入形状为:

  

形状[批量,in_depth,in_height,in_width,in_channels]

您可以看到批处理维度的去向,也可以根据需要处理in_depth。对于临时任务,可以说这代表了一些时间步长。


好的,特别是在他们的情况下。他们有一个点云。每个点(或体素)处于(X, Y)位置。此数据点还具有height。他们非常明确地说:

  

“ [...]并将高度维度视为渠道维度”

因此,如果我们使用 channels-last 表示法(作为默认的TensorFlow文档),我们将获得[X, Y, height](即 3D点)。然后,他们说:

  

“ [[...]对于时间信息,我们从过去5个时间戳中提取所有 3D点

这意味着我们需要一个时间维度,例如[time, X, Y, height],这正是他们所说的(除非他们使用 channels-first 表示法)。借助此4D张量,我们可以使用3D卷积。但是,我们通常需要它们对一批样品进行操作,而不是单个样品。因此,批次尺寸为:[batch, time, X, Y, height]。具体来说,他们使用[12, 5, X, Y, height]进行训练,其中batch=12time=5