Я пытаюсь изменить проект тензорного потока, чтобы он стал совместимым с TPU.
Для этого я начал с кода, описанного на этом сайте.
Здесь загружается набор данных COCO и сначала извлекаются его характеристики с использованием модели InceptionV3. Я хотел изменить этот код, чтобы он поддерживал TPU.
Для этого я добавил обязательный код для TPU согласно этой ссылке.
С областью действия стратегии TPU, Я создал модель InceptionV3 с использованием библиотеки keras и загрузил модель с весами Imag eNet в соответствии с существующим кодом.
Теперь, поскольку TPU требует хранения данных в хранилище Google Cloud, я создал файл записей tf с помощью tf . Пример с помощью этой ссылки.
Теперь я попытался создать этот файл несколькими способами, чтобы в нем были данные, которые TPU найдет через TFRecordDataset.
Сначала я напрямую добавил данные изображения и путь к изображению в файл и загрузил его в корзину GCP, но при чтении этих данных я понял, что эти данные изображения бесполезны, поскольку они не содержат информации о форме / размере, которая им понадобится, и Я не изменял его размер до необходимого перед хранением. Размер этого файла стал 2,5 ГБ, и это было нормально. Затем я подумал, что можно сохранять только путь к изображению в облаке, поэтому я создал еще один файл записей tf с только путем к изображению, затем я подумал, что это может быть не оптимизированный код, поскольку TPU должен будет открыть изображение индивидуально, изменить его размер до 299299, а затем подать для моделирования, и будет лучше, если у меня будут данные изображения через функцию .map () внутри TFRecordDataset, поэтому я снова попробовал, на этот раз используя ссылку эту , сохранив R, G и B вместе с путем к изображению внутри файла записей tf.
Однако теперь я вижу, что размер файла записей tf слишком велик, например, около 40-45 ГБ, и в конечном итоге я остановил выполнение, поскольку моя память заполнялась на Google Colab TPU .
Исходный размер набора данных COCO не такой большой. Это почти как 13 ГБ ... и из этого набора данных создается только из первых 30 000 записей. поэтому 40 ГБ выглядит странно.
Могу я узнать, в чем проблема с таким способом хранения функций? Есть ли лучший способ сохранить данные изображения в файле записей TF, а затем извлечь их через TFRecordDataset.