'的std :: bad_alloc的'在caffe

时间:2018-03-13 13:23:10

标签: neural-network deep-learning caffe bad-alloc lmdb

我创建了一个包含非编码6通道图像的lmdb文件。当我将它加载到caffe中的网络中时,在加载网络后,系统RAM的使用情况(如使用' top'命令所示)最初约为10%,但它会继续增加,直到达到超过90%。我使用的是32 GB RAM的系统,它开始变慢,直到代码崩溃并出现以下错误:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

请注意,即使在运行单个正向传递之前,也会发生这种情况。

我使用的lmdb文件的大小为545 MB。

我使用python netspec来定义网络。以下是代码:

net = caffe.NetSpec()
net.data0, net.label = CreateAnnotatedDataLayer(train_data, 
    batch_size=1,train=True, output_label=True,  
    label_map_file=label_map_file,
    transform_param=train_transform_param, batch_sampler=batch_sampler)
net.data, net.data_d = L.Slice(net.data0, slice_param={'axis': 1}, ntop=2, name='data_slicer')

由于我的lmdb有6通道图像,预训练网络有3个通道,我使用切片层将图像分割成3通道图像,可以输入两个不同的卷积层。

任何建议都会有所帮助。

0 个答案:

没有答案