CNN模型为什么数据太大?
CNN model why the data is too large?
- 使用 keras 和 tensorflow 后端
- 仅使用CPU,内存128GB
- 输入数据的形状为 (45,1024,1024)
- 模型只有一个卷积,一个(2,2) max pooling
- a 1024 *1024 全连接
我收到此错误消息:
Invalid argument: Shape [4194304,1048576] is too large (more than
1099511627776 entries)
注意:
4194304 = 2048 * 2048
1048576 = 1024 * 1024
keras 是如何计算出这个形状的?为什么太大了?
形状 [4194304, 1048576]
计算如下:
将大小为 [3, 3]
的 16 个卷积与 same
边界模式应用于大小为 [1024, 1024, 3]
的输入,得到大小为 [1024, 1024, 16]
的输出。在大小为 2 的最大池化之后,它变成 [512, 512, 16]
,当展平时是 512 * 512 * 16 = 4194304
。 1048576
来自 1024 * 1024
,正如您在 Dense
层构造函数中指定的那样。
我认为您应该重新考虑模型的架构。您可以使用较小尺寸的输入,添加多个池化层,应用 1 x 1
卷积减少维数。我怀疑 1024 * 1024
是否是全连接层中合理的节点数。
- 使用 keras 和 tensorflow 后端
- 仅使用CPU,内存128GB
- 输入数据的形状为 (45,1024,1024)
- 模型只有一个卷积,一个(2,2) max pooling
- a 1024 *1024 全连接
我收到此错误消息:
Invalid argument: Shape [4194304,1048576] is too large (more than 1099511627776 entries)
注意:
4194304 = 2048 * 2048
1048576 = 1024 * 1024
keras 是如何计算出这个形状的?为什么太大了?
形状 [4194304, 1048576]
计算如下:
将大小为 [3, 3]
的 16 个卷积与 same
边界模式应用于大小为 [1024, 1024, 3]
的输入,得到大小为 [1024, 1024, 16]
的输出。在大小为 2 的最大池化之后,它变成 [512, 512, 16]
,当展平时是 512 * 512 * 16 = 4194304
。 1048576
来自 1024 * 1024
,正如您在 Dense
层构造函数中指定的那样。
我认为您应该重新考虑模型的架构。您可以使用较小尺寸的输入,添加多个池化层,应用 1 x 1
卷积减少维数。我怀疑 1024 * 1024
是否是全连接层中合理的节点数。