【问题标题】:CNN model why the data is too large?CNN模型为什么数据太大?
【发布时间】:2016-12-20 13:05:11
【问题描述】:
- 使用 keras 和 tensorflow 后端
- 仅使用 CPU,内存 128GB
- 输入数据的形状为 (45,1024,1024)
- 模型只有一个卷积,一个 (2,2) 最大池化
- 1024 *1024 完全连接。
我收到此错误消息:
无效参数:形状 [4194304,1048576] 太大(超过
1099511627776 个条目)
注意:
4194304 = 2048 * 2048
1048576 = 1024 * 1024
keras 是如何计算这个形状的?为什么它太大了?
【问题讨论】:
标签:
tensorflow
keras
training-data
【解决方案1】:
[4194304, 1048576] 的形状计算如下:
对大小为[1024, 1024, 3]的输入应用16个大小为[3, 3]和same边界模式的卷积,得到大小为[1024, 1024, 16]的输出。在大小为 2 的最大池化之后,它变为[512, 512, 16],当扁平化时为512 * 512 * 16 = 4194304。 1048576 来自 1024 * 1024,正如您在 Dense 层构造函数中指定的那样。
我认为您应该重新考虑模型的架构。您可以使用较小尺寸的输入,添加几个池化层,应用1 x 1 卷积降低维度。而且我怀疑1024 * 1024 是全连接层中合理数量的节点。