Google colab TPU и чтение с диска во время обучения

У меня 100к фоток, и в барабан не влезает, так что надо читать с диска во время тренировки.

dataset = tf.data.Dataset.from_tensor_slices(in_pics)
dataset = dataset.map(extract_fn)

def extract_fn(x):
    x = tf.read_file(x)
    x = tf.image.decode_jpeg(x, channels=3)
    x = tf.image.resize_images(x, [64, 64])
return x

Но потом пытаюсь тренироваться, появляется такая ошибка

File system scheme '[local]' not implemented (file: '/content/anime-faces/black_hair/danbooru_2629248_487b383a8a6e7cc0e004383300477d66.jpg')

Могу я как-нибудь обойти это? Также пробовал с API TFRecords, получил ту же ошибку.


person had    schedule 17.11.2018    source источник


Ответы (1)


Облачный TPU, который вы используете в этом сценарии, не размещен на той же виртуальной машине, на которой работает ваш python. Проще всего поместить данные в GCS и использовать URI gs: //, чтобы указать на него TPU.

Для оптимизации производительности при использовании GCS добавьте prefetch(AUTOTUNE) в конвейер tf.data, а для небольших (‹50 ГБ) наборов данных используйте cache().

person Ami F    schedule 13.12.2018
comment
Это странно; Хранилище GCS должно быть самым быстрым способом передачи данных в TPU. Может быть, попробуйте увеличить репликацию ваших хранимых данных? (Например, глобальное или мультирегиональное хранилище вместо зонального) - person Ami F; 14.12.2018
comment
Я попробую, пока я сравнивал только colab vm ram и облачное хранилище Google. И второй вариант в 3 раза медленнее. - person had; 15.12.2018
comment
Протестировано с использованием нескольких регионов, теперь оно быстрее, но все же хуже, чем RAM. - person had; 17.01.2019