内存溢出问题评估cnn

24日视图(30天)
ioannisbaptista
ioannisbaptista 2019年6月21日
回答: 银tena2021年8月23日
消息” 内存设备。查看更多细节在GPU可用内存,使用“gpuDevice ()”。如果问题仍然存在,重置GPU通过调用“gpuDevice (1)”。 ”当我试图评估训练CNN。我用一个 GeForce 1060 GTX公司6 gb RAM
这是我的一段代码:
testData =负载(“testROI.mat”);
[test_imds, test_pxds] = pixelLabelTrainingData (testData.gTruth);
testDataSet = pixelLabelImageDatastore (test_imds test_pxds);
unetPxdsTruth = testDataSet.PixelLabelData;
unetpxdsResults = semanticseg (test_imds unet);%的错误是由于这条线
unetMetrics = evaluateSemanticSegmentation (unetpxdsResults unetPxdsTruth);
命令 gpuDevice () 显示结果如下:
CUDADevice属性:
名称:的GeForce 1060 GTX公司
指数:1
ComputeCapability:“6.1”
金宝appSupportsDouble: 1
DriverVersion: 9.2000
ToolkitVersion: 9.1000
MaxThreadsPerBlock: 1024
MaxShmemPerBlock: 49152
MaxThreadBlockSize (1024 1024 64):
MaxGridSize (2.1475 e + 09年65535 65535):
SIMDWidth: 32
TotalMemory: 6.4425 e + 09年
AvailableMemory: 5.0524 e + 09年
MultiprocessorCount: 10
ClockRateKHz: 1670500
ComputeMode:“默认”
GPUOverlapsTransfers: 1
KernelExecutionTimeout: 1
CanMapHostMemory: 1
Device金宝appSupported: 1
DeviceSelected: 1
如您所见,有超过5 gb的免费memoy,但出于某种原因,我不明白,会发生内存溢出的问题。奇怪的是它不会发生在500个图像训练阶段,但发生在100年的图像在测试评估阶段。重要的是要强调,这一评价,努力把使用pretrained CNN在另一个时刻,我创建了训练数据不是在GPU内存而这样做。
谁知道接下来将会发生什么吗?

接受的答案

安德里亚Picciau
安德里亚Picciau 2019年6月21日
编辑:安德里亚Picciau 2019年6月21日
问题是你的GPU的6 gb内存不足以执行语义分割使用默认设置。减少mini-batch大小从默认的126应该够了。试着改变问题如下:
unetpxdsResults = semanticseg (test_imds unet,“MiniBatchSize”4);
你可以尝试增加4更大的值,但它不会让我感到吃惊,如果8是最大的GPU可以与你的GPU。
你也应该看一看 semanticseg 文档页面 尤其是和名称-值对。
最后一个字条 gpuDevice: 当你得到内存不足错误,MATLAB不分配数据。这是大约会发生什么:
  • 在休息的时候,几百MBs GB之间GPU内存分配。这是占用的空间CUDA库。
  • 当你运行sematicseg使用默认设置,一些数据的MATLAB需要分配方式比你的GPU的剩余5 gb的内存。
  • MATLAB问CUDA分配数据,
  • CUDA给了一个错误,说你的GPU内存不够大,
  • MATLAB与错误消息通知您,没有分配任何东西,
  • 当你检查gpuDevice,你会看到5 gb是免费的。
4评论
ioannisbaptista
ioannisbaptista 2019年6月21日
明白了,安德里亚。
谢谢你这么多!的问候。

登录置评。

答案(1)

银tena
银tena 2021年8月23日
你好安德烈和ioannisbaptista。
我有一个问题当我训练程序对图像分类。错误消息是“记忆”。我的GPU规格波纹管。
名称:“GeForce 1650 GTX公司”
指数:1
ComputeCapability:“7.5”
金宝appSupportsDouble: 1
DriverVersion: 11.1000
ToolkitVersion: 11
MaxThreadsPerBlock: 1024
MaxShmemPerBlock: 49152
MaxThreadBlockSize (1024 1024 64):
MaxGridSize (2.1475 e + 09年65535 65535):
SIMDWidth: 32
TotalMemory: 4.2950 e + 09年
AvailableMemory: 3.3381 e + 09年
MultiprocessorCount: 14
ClockRateKHz: 1710000
ComputeMode:“违约”
GPUOverlapsTransfers: 1
KernelExecutionTimeout: 1
CanMapHostMemory: 1
Device金宝appSupported: 1
DeviceAvailable: 1
DeviceSelected: 1
我试着训练alexnet,不是问题。当我培训VGG16,问题发生“内存不足”。
这部分是发生错误的地方。我设置minibatch大小= 5。时代= 10。照片的数量是300只。
featuresTrain =激活(netTransfer、augimdsTrain层,“OutputAs” , “行” );
我需要你的帮助。
我也仍然需要火车Resnet 110和iceptionV3架构。我需要你们的帮助。上帝保佑你们所有佛。

下载188bet金宝搏


释放

R2018b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!