Matlab 中训练faster-rcnn VGG16

环境:
  1. ubuntu14.04
  2. GPU 1080(8G), CUDNN8.0
  3. Matlab

    在VGG16中训练faster rcnn 所需的GPU内存是8G,但是如果用官方的Matlab版本进行训练却报错,显示内存不足,可是同样的VGG16在py-faster-rcnn中进行训练却不存在这个问题,到底是什么原因,即使是把batch_size改为了1也没有是作用。
    这篇博客算是很详细的介绍了怎么在Matlab中训练自己的模型,但采用的是ZF模型。
    Matlab 中训练faster-rcnn VGG16_第1张图片

修改batch_size,然后把imm_per_batch也改为1。

然后还是不行,通过调试,发现了问题出现在下面的代码,也就是程序执行到这里就开始报错

Matlab 中训练faster-rcnn VGG16_第2张图片

Matlab 中训练faster-rcnn VGG16_第3张图片
这是跟踪到了proposal_calc_output_size.m文件中。到了这里既然gpu用不了,那就用cpu,把gpu的代码注释掉。
Matlab 中训练faster-rcnn VGG16_第4张图片

此时你会发现竟然可以运行,但速度超慢。

上面这个是方法1。此时这里完成后会把数据写入faster-rcnn的根目录output文件夹中。还不是用到vgg16进行训练,那么是什么原因占用了那么多内存呢?这是一个问题,因为这里只是做一个prposal计算,而且你会发现上图主要消耗gpu是在循环里面,每一个循环就有一个caffe_net.forward(net_inputs),而这个循环参数input是由什么决定的,如果小一点能不能运行过去。
原来input = 100:conf.max_size 觉得,于是果断的把proposal_config.m中的max_size改为900,如果你不放心,把fast_rcnn_config.m中的max_size也改为900batch_size也适当改小一点。

Matlab 中训练faster-rcnn VGG16_第5张图片

运行

Matlab 中训练faster-rcnn VGG16_第6张图片

附:欢迎加群(282617340)了解更多,共同交流!

你可能感兴趣的:(目标检测,matlab)