Skip to main content
 首页 » 编程设计

python之Tensorflow之避免张量大小限制

2024年09月07日35shangdawei

我正在研究 Long, Shelhamer paper 中描述的 FCN-32 网络的实现。 ,但在上采样时遇到了障碍。为了上采样到原始大小,其他implementations使用带有内核大小为 64x64 的双线性过滤器的 conv2d_transpose 层。在您开始使用大量类之前,这一切都很好。

对于任意数量的类 > ~375,转置层中的 filters 变量 > 2 gb ( 64 x 64 x (>375) x (>375) ) 所以 Tensorflow 提示并死掉, 说

ValueError:无法创建内容大于 2GB 的张量原型(prototype)。

有什么办法可以避免这个大小限制吗?我的第一个想法是生成张量,但我找不到任何关于在存在或可能存在这样的构造的情况下如何创建的文档。

请您参考如下方法:

您可以将输出类拆分为多个操作并在最后连接它们。

Backprop 将通过 concat 操作正常工作。它应该像创建两个 conv2d_transpose 操作一样简单,每个操作有一半的类并适本地连接结果并从那里继续损失函数。

根据需要创建 2 个以上的 conv2d_transpose 操作同样有效。

考虑到这一点后,我相信它会奏效。如果有问题请告诉我,我会更新答案。