首页 文章

如何将多维数据输入到caffe lmdb?

提问于
浏览
0

我想重现Two-Stream Convolutional Networks for Action Recognition in Videos .

但感觉就像我给caffe提供多帧输入一样 .

由于单帧网络提供50%的准确性 . 但是当我通过LMDB输入30 * 227 * 227时 . 20(每帧10个,有3个通道) . accuracy barely reaches 4% .

这让我相信我给caffe的输入不是所需的格式或模型是错误的(不太可能) .

我想以3 x 10 x 227 x 227的样式给出输入 . 但是caffe LMDB只有一些变量作为输入 . 即高度,widhth, Channels ,数据,标签 .

这让我只能在3个维度上写入数据,然后不能进入第4帧维度 .

有谁知道这方面的工作?

或者您知道在哪里可以找到任何使用多帧数据进行分类的caffe示例 .

据我所知,Caffe使用4D blob处理数据,因此无法处理批次,即使我让它工作 . 因此,它一次只能使用一个样本 . 这也取决于滤波器的设计方式以及它们是否可以处理帧的相关性,因为它们在第4维中通常用作批处理 .

有什么想法吗?

P.s我也试过HDF5 similar results .

datum = caffe.proto.caffe_pb2.Datum()
    datum.channels =3 #3 for a single image/ 30 for stacking them which I tried and get accuracy of 5%
    datum.height = 227
    datum.width = 227
    datum.data = X[i].tostring()  # or .tostring() if numpy < 1.9
    datum.label = classlabel
    str_id = '{:10}'.format(i+(counter))

1 回答

  • 0

    根据上述文章,RGB图像是空间流的输入和时间流的堆叠光流帧 . 因此,您应首先为时间流提取光流帧 . 光流框架的每个点对应于具有x和y分量的矢量,其可以被视为图像通道 . 通过堆叠L光学帧,您将获得具有2 * L通道的图像,并且您对caffe的输入将是标准的batch_sizex2LxHxW . 另请查看此repocode以获取更多帮助 .

相关问题