TensorFlow错误:检查缩小失败;值不等于转换后中止(堆芯转储)

TensorFlow错误:检查缩小失败;值不等于转换后中止(堆芯转储),tensorflow,gpgpu,Tensorflow,Gpgpu,我正在Ubuntu 16.04系统上使用TensorFlow 1.10。当我试图将每个进程\u gpu内存\u分数设置为10,以允许gpu使用系统内存在非常大的RGB图像(12000、12000、3)上训练ResNet时,我遇到了一个错误: F:tensorflow/stream_executor/cuda/cuda_dnn.cc:91] Checked failed narrow == wide (-1990967296 vs 2304000000) checked narrowing fai

我正在Ubuntu 16.04系统上使用TensorFlow 1.10。当我试图将
每个进程\u gpu内存\u分数设置为10,以允许gpu使用系统内存在非常大的RGB图像(12000、12000、3)上训练ResNet时,我遇到了一个错误:

F:tensorflow/stream_executor/cuda/cuda_dnn.cc:91] Checked failed narrow == wide (-1990967296 vs 2304000000) checked narrowing failed; values not equal post-conversion Aborted (core dumped)
上面引用的代码块如下所示:

// Converts (via narrowing) a type T value to a type U, and checks that the
// value has no value change due to the conversion.
template <typename WideT, typename NarrowT>
NarrowT CheckedNarrowing(const WideT& wide) {
NarrowT narrow = wide;
CHECK_EQ(narrow, wide)
    << "checked narrowing failed; values not equal post-conversion";
return narrow;
}
//将类型T值转换(通过缩小)为类型U,并检查
//值没有因转换而发生的值更改。
模板
窄带检查窄带(恒定宽度和宽度){
窄=宽;
检查均衡器(窄、宽)

代码正在检查某些维度到有效的有符号
int
数量的转换。2304000000数字是12000*12000*16。这不适用于有符号32位整数数量,它最多可以安全地保存2147483647。当切换到
(1000010000,3)时
等效产品10000*10000*16将适合有符号32位整数类型。解决此问题的一种方法是使用尺寸乘积小于2147483647/16的图像。除了使用较小的图像之外,还有其他想法吗?