首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CNN模型中使用多层时的内存错误

CNN模型中使用多层时的内存错误
EN

Data Science用户
提问于 2018-10-01 07:53:16
回答 2查看 1.8K关注 0票数 7

在我的戴尔核心i7 -16 4gb内存-4GB 960兆GPU笔记本电脑上,我正在进行一个使用3d CNN对肺CT图像进行分类的项目。我在使用CPU版本的tensorflow。图像以numpy阵列大小(25,50,50)的形式准备。

我的CNN模型有两个conv层,两个最大池层,一个FC层和输出层。使用这种架构,我可以使用大约(5000到6000)个样本来训练模型。在增加了更多的层后,我的模型现在有6层,3层最大池层,FC层和输出层.我的问题是,在用1000多个样本更改了体系结构之后,我的内存就被填满了,我得到了内存错误。我试着做更小的批次,但每次都会出现同样的错误。我有两个问题:

  1. 为什么通过增加更多的层,模型需要更多的内存?
  2. 有没有办法解决这类问题?
EN

回答 2

Data Science用户

发布于 2018-10-01 22:14:26

  1. 更多的层意味着网络的更多参数,而这又意味着存储这些参数所需的内存空间更多。
  2. 唯一的解决方案(除了增加计算机的内存)是减少网络的大小。在这方面有几点建议:首先,三维CNN比二维CNN需要更多的空间.一种想法可能是转向二维的。除此之外,参数最多的层是FC层。这些有时是多余的。我建议先缩小尺寸。
票数 4
EN

Data Science用户

发布于 2018-10-03 20:04:58

此外,您还可以尝试使用生成器来代替MzdR。因为你是模特,在训练的时候并不需要把你所有的图像都放在记忆里,所以我认为一个生成器应该服务得很好。

检查堆栈溢出中的问题。当你进行记忆交易时,发电机是很酷的。但是如果这也失败了,试着缩小FC层的大小。

票数 4
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/39003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档