Тренировка ТПУ зависает посреди тренировки

Я пытаюсь обучить сеть регрессии CNN в TF 1.12, используя экземпляр TPU v3-8 1.12. Модель успешно компилируется с XLA, запускает процесс обучения, но где-то после полу-итераций 1t эпохи зависает и ничего не делает. Я не могу найти причину проблемы.

def read_tfrecord(example):
    features = {
        'image': tf.FixedLenFeature([], tf.string),
        'labels': tf.FixedLenFeature([], tf.string)
    }
    sample=tf.parse_single_example(example, features)
    image = tf.image.decode_jpeg(sample['image'], channels=3)
    image = tf.reshape(image, tf.stack([540, 540, 3]))
    image = augmentation(image)
    labels = tf.decode_raw(sample['labels'], tf.float64)
    labels = tf.reshape(labels, tf.stack([2,2,45]))
    labels = tf.cast(labels, tf.float32)
    return image, labels

def load_dataset(filenames):
    files = tf.data.Dataset.list_files(filenames)
    dataset = files.apply(tf.data.experimental.parallel_interleave(tf.data.TFRecordDataset, cycle_length=4))
    dataset = dataset.apply(tf.data.experimental.map_and_batch(map_func=read_tfrecord, batch_size=BATCH_SIZE, drop_remainder=True))
    dataset = dataset.apply(tf.data.experimental.shuffle_and_repeat(1024, -1))
    dataset = dataset.prefetch(buffer_size=1024)
    return dataset

def augmentation(img):
    image = tf.cast(img, tf.float32)/255.0
    image = tf.image.random_brightness(image, max_delta=25/255)
    image = tf.image.random_saturation(image, lower=0.5, upper=1.5)
    image = tf.image.random_contrast(image, lower=0.5, upper=1.5)
    image = tf.image.per_image_standardization(image)
    return image

def get_batched_dataset(filenames):
    dataset = load_dataset(filenames)
    return dataset


def get_training_dataset():
    return get_batched_dataset(training_filenames)

def get_validation_dataset():
    return get_batched_dataset(validation_filenames)

person Nicholas Santavas    schedule 28.07.2019    source источник


Ответы (1)


Наиболее вероятная причина - проблема в функции предварительной обработки данных. См. Документацию по устранению неполадок Ошибки во время тренировки, может быть полезно получить руководство.

Ничего странного с вашим кодом не уловил.

Используете ли вы сегменты облачного хранилища для работы с этими изображениями и файлами? Если да, находятся ли эти ведра в одном регионе?

Вы можете использовать журналы аудита Cloud TPU, чтобы определить, связана ли проблема с ресурсы в системе или как вы получаете доступ к своим данным.

Наконец, я предлагаю вам взглянуть на Training Mask RCNN on Cloud TPU документация.

person Enrique Zetina    schedule 31.07.2019