问题类型
错误
来源
二进制的
tensorflow 版本
tf 2.10,tf-每晚
自定义代码
是的
操作系统平台和分发
Linux操作系统Ubuntu 20.04
移动的设备
- 没有回应 *
Python版本
- 没有回应 *
Bazel版本
- 没有回应 *
GCC/编译器版本
- 没有回应 *
CUDA/cuDNN版本
- 没有回应 *
GPU型号和内存
- 没有回应 *
当前行为?
Applying shuffle+repeat+batch on `tf.data.experimental.CsvDataset` causes check failed and IOT instruction (core dumped) crashes.
重现问题的独立代码
import tensorflow as tf
# The following code is from https://www.tensorflow.org/api_docs/python/tf/data/experimental/CsvDataset
with open('/tmp/my_file0.csv', 'w') as f:
f.write('abcdefg,4.28E10,5.55E6,12\n')
f.write('hijklmn,-5.3E14,,2\n')
dataset = tf.data.experimental.CsvDataset(
"/tmp/my_file0.csv",
[tf.float32, # Required field, use dtype or empty tensor
tf.constant([0.0], dtype=tf.float32), # Optional field, default to 0.0
tf.int32, # Required field, use dtype or empty tensor
],
select_cols=[1,2,3] # Only parse last three columns
)
# The following operation is causing Check Fail
for e in range(10):
dataset = dataset.shuffle(1000).repeat().batch(512)
相关日志输出
F tensorflow/core/framework/tensor_shape.cc:404] Check failed: 0 <= new_num_elements (0 vs. -9223372036854775808)
IOT instruction (core dumped)
7条答案
按热度按时间6yjfywim1#
你能分享一下你的
/tmp/my_file0.csv
吗?mkshixfv2#
嗨@巴克
如果您直接在报表中运行代码示例,它将自动为您生成
/tmp/my_file0.csv
!(也来自doc)chhkpiq43#
好吧,也许它可以得到更好的“保护”,而不是崩溃,但你的用例是什么关于批处理多次在循环?
我想你想不想用最后一批?
b91juud34#
@bhack是的,你是对的,确实在这个代码示例中,多次批处理是不必要的。但是,我认为“保护”这样一个操作比崩溃更好?
v64noz0r5#
@creakseek是的,但是你的原始循环产生了溢出
让我们看看是否可以用其他东西代替
CHECK_LE
:tensorflow /tensorflow /核心/框架/Tensor形状.cc
38af575中的第418至419行
| | 如果是,则返回一个新的值。|
| | 检查_LE(0,新的元素数);|
mrwjdhj36#
@mihaimaruseac这些是否被视为安全问题?例如https://github.com/tensorflow/tensorflow/blob/master/tensorflow/security/advisory/tfsa-2022-069.md
hkmswyz67#
@mihaimaruseac这些是否被视为安全问题?例如https://github.com/tensorflow/tensorflow/blob/master/tensorflow/security/advisory/tfsa-2022-069.md
好的,好像620ab3e之后就没有了