当前位置: 首页 > 知识库问答 >
问题:

向CNN添加密集层时出现内存问题

黄凌龙
2023-03-14

我在Tensorflow中实现了我的第一个CNN,在将密集层添加到我的CNN模型时遇到了麻烦。下面是代码:

batch_size = 4
sample_shape = (batch_size, 24, 30, 30, 5)

model = models.Sequential()
model.add(layers.Conv3D(96, kernel_size=(4, 4, 4), activation='relu', padding='same', input_shape=sample_shape))
model.add(layers.Conv3D(64, kernel_size=(3, 3, 3), activation='relu', padding='same'))
model.add(layers.Conv3D(64, kernel_size=(1, 1, 5), activation='relu', padding='same'))
model.add(layers.Flatten())
model.add(layers.Dense(256, activation='relu'))

model.summary()

我得到以下输出。后来,我的程序崩溃了。什么东西需要这么多内存?这似乎是致密层,但我无法解释。

2021-10-20 19:03:53.219849: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 5662310400 exceeds 10% of free system memory.

共有1个答案

司寇苗宣
2023-03-14

最后一层的扁平重量形状大致相同

4 * (24 * 30 * 30 * 64 * 256) = 1,415,577,600

这是一个疯狂的参数数量。在卷积层之间使用maxpoolg3dglobalaveragepoolg3d而不是flatte来减少参数数量。

 类似资料:
  • 我想知道是否有可能在卷积神经网络的密集层中添加一个变量(以及之前卷积层的连接,是否有额外的特征集可用于区分目的)?如果可能的话,有人能给我举个例子/文档来解释如何做到这一点吗? 我希望使用Keras,但如果Keras限制太多,我很乐意使用TensorFlow。 编辑:在这种情况下,我认为这应该起作用的方式是我向神经网络提供一个包含图像和相关特征集的列表(以及在训练相关分类期间)。 EDIT2:我想

  • 任何洞察力都值得赞赏。多谢了。 ScreenBase.cpp:

  • 卷积神经网络中的“局部”层和“密集”层有什么区别?我正在尝试理解TensorFlow中的CIFAR-10代码,我看到它使用“局部”层而不是规则的密集层。TF中是否有支持实现“本地”层的类?

  • 我有一个XSD模式,根文档是:

  • 我正在使用pdfbox 2.0.8-需要创建一个层,并在那里添加一些图形。 我从如何修改pdf中的现有层(可选内容组)开始? 然而,这是基于1.8。我试图适应2.0,并设法创建了该层,但完全不清楚如何创建新资源并将其添加到该层,即如何创建道具。putMapping(resourceName,layer);必须重写1.8中的内容

  • 我正在尝试使用以下方法将元素添加到名为activList的ArrayList中: 但是我在运行代码时在这一行得到了一个NullPointerExcema: 我确实读过这一页:什么是NullPointerException,如何修复它?(请不要重复报告) 我所理解的是,我得到错误是因为我的ArrayList没有任何元素。但是,我尝试在创建后立即添加一个,如下所示: 但我得到了一个错误:“意外标记:(