Я тренирую оценщик 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 часа обучения.Я тренируюсь на процессоре.Это говорит о том, что есть утечка памяти, но я использую только код 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)
, где я читаю записи TF, созданные Apache Beam.
Я не уверен, как можно получить такие ошибки, я знаю, что данные в записях TF хороши, и я могу обучить XGB / Catboost, используя тот же набор.
Может кто-нибудь помочь