tensorflow - Tensorflow Estimator 错误:释放对象的校验和不正确 - 对象在被释放后可能被修改
问题描述
我正在训练一个 TF Boosted Trees 估计器,这给了我一个错误:
incorrect checksum for freed object - object was probably modified after being freed.
在 CloudML 上,我得到:
Command '['python', '-m', u'trainer.model', u'--job-type', u'remote', '--job-dir', u'gs://xxx']' died with signal 7.
经过约 1 小时的训练。我在 CPU 上训练。这表明存在内存泄漏,但我只使用 TF 代码,所以我不确定出了什么问题。
我的代码如下:
def build_training_input_fn():
def parse_record(record):
transformed_feature_spec = transformed_metadata.schema.as_feature_spec()
transformed_features = tf.parse_single_example(record, transformed_feature_spec)
cols_to_remove = []
transformed_labels = transformed_features.pop(LABEL_KEY)
transformed_features = {key: value for (key, value) in transformed_features.items() if
key not in cols_to_remove}
return transformed_features, transformed_labels
def input_fn(file_pattern):
files = tf.data.Dataset.list_files(file_pattern=file_pattern)
files.apply(
tf.data.experimental.parallel_interleave(
lambda filename: tf.data.TFRecordDataset(filename),
cycle_length=32,
block_length=1,
sloppy=True,
))
dataset = dataset.apply(tf.data.experimental.map_and_batch(
map_func=parse_record, batch_size=BATCH_SIZE, drop_remainder=False,
num_parallel_batches=1))
return dataset
return input_fn
classifier = tf.estimator.BoostedTreesClassifier()
input_fn_train = build_training_input_fn()
classifier.train(input_fn=input_fn_train)
我正在阅读 Apache Beam 创建的 TF 记录。
我不确定怎么会出现这样的错误,我知道 TF 记录中的数据很好,我可以使用相同的集合训练 XGB/Catboost。
任何人都可以帮忙吗?
解决方案
推荐阅读
- python - databuffer += data_str TypeError:只能将str(不是“_io.TextIOWrapper”)连接到str
- ios - JSONDecoder 无法解码嵌套字典
- .net-core - 在 VS2017 中列出给定项目/.NET Core 项目解决方案的“递归依赖”的所有 nuget 包
- javascript - 如何让用户在 if 语句中输入有多个正确答案
- html - 使用两个同名但扩展名不同的html索引页面
- mysql - 调用特定列
- javascript - 在加载的 ajax 内容上绑定点击事件
- r - 在 R 中运行循环时在粘贴命令中包含索引
- c# - 为什么当我将“工作单元”与通用接口一起使用时会看到错误?
- word2vec - 使用 AutoML 评估算法 Word2Vec 的超参数