【发布时间】:2019-06-06 02:08:09
【问题描述】:
我在 Keras 上使用 Tensorflow 后端制作了一个 CNN,我的训练集有 144 个示例,但每个示例的大小为 3200*101。我的 CNN 非常基础,仅用于学习,batch_size 为 2(我尝试将其从 32 减少,但没有任何改进)。一层 CNN 层、一层展平层和一层密集层用于输出(11 类)。当我安装模型时,我的笔记本电脑显示“分配(一个大数字)超过 10 个系统内存”然后冻结,即使没有运行 1 个 epoch。我不能“压缩”这些例子,它们中的每一个都必须有这个大小。我在我的 CPU(我没有 GPU)、8 gb 内存、1 tb 磁盘上运行模型。我能做什么?
Psdt:抱歉英语不好,我还在学习。并感谢您的任何回答!
更新编辑:只是添加更多信息。
对于示例,我的火车集的形状为 (144, 3400, 101, 1),而标签的形状为 (144,11) 我的模型是这样的:
model.add(Conv2D(8, kernel_size=6, activation='linear', input_shape=(3400,101,1), batch_size=2))
model.add(Flatten())
model.add(Dense(11, activation='softmax'))
model.compile(optimizer='sgd', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=100)
【问题讨论】:
-
对于该输入大小,您可能希望拥有一台具有更多 RAM 的计算机。 8 GB 可能还不够。
-
根据您添加的信息很难回答您的问题。添加更多关于它的信息,比如模型架构的代码,层输入的维度是多少。这可能不是内存问题,但可能是您向其提供数据的方式。
-
我刚刚更新了我的问题,添加了输入尺寸和模型
标签: python python-3.x keras memory conv-neural-network