tensorflow - 给定大量输入,TensorFlow reduce_sum 返回部分不正确的输出
问题描述
我遇到一个问题,reduce_sum
在 TensorFlow 中,输入大于一定大小时返回不正确的值。
具体来说,如果我生成一个随机的 64x512x4096x2 张量并reduce_sum
在第 3 轴上与手动添加第 3 维中的第 0 和第 1 个元素进行比较,正如预期的那样,生成的张量在所有 134217728 个元素中都是相同的。
但是,如果我对65 x512x4096x2 张量执行完全相同的步骤,则生成的张量在前 134217728 个元素上一致,但在剩余的 2097152 上不同。
我已经在几台不同的机器和 GPU 上尝试过这个。这是一个应重现结果的独立片段:
import tensorflow as tf
with tf.Session() as sess:
test = tf.random_uniform([64, 512, 4096, 2])
print(tf.reduce_sum(tf.to_int32(tf.logical_not(tf.equal(test[:,:,:,0] + test[:,:,:,1], tf.reduce_sum(test, axis=3))))).eval())
# 0
print(tf.reduce_sum(tf.to_int32(tf.equal(test[:,:,:,0]+test[:,:,:,1], tf.reduce_sum(test, axis=3)))).eval())
# 134217728
test = tf.random_uniform([65, 512, 4096, 2])
print(tf.reduce_sum(tf.to_int32(tf.logical_not(tf.equal(test[:,:,:,0] + test[:,:,:,1], tf.reduce_sum(test, axis=3))))).eval())
# 2097152
print(tf.reduce_sum(tf.to_int32(tf.equal(test[:,:,:,0] + test[:,:,:,1], tf.reduce_sum(test, axis=3)))).eval())
# 134217728
解决方案
推荐阅读
- react-native - React Native:两个单独的类之间的运行方法
- web.xml - 防止 jboss 5.1 中的点击劫持不适用于根 url
- jquery - 将动画添加到偏移量
- python - matplotlib 在分组数据框的散点图中颜色错误
- c# - 我的 .msi 文件安装程序在安装过程中要求关闭当前运行的控制台应用程序或 Windows 服务
- asp.net-core - EF Core'实体类型没有配置鉴别器属性'
- python - 将两个列表加入到 2 个元素的元组中
- delphi - Delphi Indy SSL 连接:由对等方重置连接
- oracle - Oracle SQL - 嵌套子查询抛出括号异常
- android - 如何在新的自定义视图中支持“工具:文本”?