Я тренируюсь на Google Colab с данными и весами моделей, загруженными из / сохраненными в GCP. Я использую обратные вызовы Keras, чтобы сохранить веса в GCP. Вот как выглядит обратный вызов
callbacks = [tf.keras.callbacks.ModelCheckpoint(filepath='gs://mybucket/'+ 'savename' + '_loss_{loss:.2f}',
monitor='loss',
verbose=1,
save_weights_only=True,
save_freq='epoch')]
Обучение успешно сохраняет веса модели в моем ведре GCP, но когда я пытаюсь загрузить эти веса в новом сеансе, ячейка просто зависает, Я ждал час, прежде чем сдаться. Сначала я подумал, что это связано с обучением TPU / GPU, но я также пробовал на экземпляре CPU, и веса не загружались.
Вот пример кода
model = get_model(**config)
model.load_weights('gs://mybucket/savename_loss_0.13')
Чтобы проверить веса модели, я загрузил их прямо в свой colab
!gsutil -m cp -r gs://mybucket/* /content/
и загрузил модель с весами, сохраненными в colab, и она сработала . Тогда я предположил, что права доступа к корзине были как-то разными, но это не так.
Для всех файлов класс Storage стандартный, а контроль доступа стандартный.
Итак, я создал новое ведро и загрузил веса из моего колаба в новое ведро, и из этого нового ведра я смог загрузить веса в течение нескольких секунд. Я подтвердил, что вес правильный. Для ясности, это те же веса, которые я загрузил из исходного ведра в локальную среду google colab.
Тогда мне было интересно, были ли каким-то образом разные разрешения между старым и новым ведрами, но в консоли они все имеют одинаковые атрибуты, регион, шифрование и т. д. c. Оба сегмента также имеют одни и те же атрибуты.
Единственное, о чем я могу думать, это то, что есть какой-то атрибут, который я не замечаю, который не отображается ни в консоли сегмента, ни в файловой консоли.