Google недавно объявил Clould ML, https://cloud.google.com/ml/, и это очень полезно. Однако одним из ограничений является то, что вход/выход программы Tensorflow должен поддерживать gs: //.Ввод/вывод файла оболочки Google Storage (gs) для Cloud ML?
Если мы используем все APS-анализаторы для чтения/записи, это должно быть ОК, поскольку эти API поддерживают gs://
.
Однако, если мы будем использовать исходный файл IO API, такие как open
, он не работает, потому что они не понимают gs://
Например:
with open(vocab_file, 'wb') as f:
cPickle.dump(self.words, f)
Этот код не будет работать в Google Cloud ML.
Однако изменение всех API-интерфейсов IO для файловых полей для API-интерфейсов tendorflow или API-интерфейсов Google Storage Python действительно утомительно. Есть ли простой способ сделать это? Любые обертки для поддержки систем хранения google, gs://
поверх собственного файла IO?
Как предложено здесь Pickled scipy sparse matrix as input data?, возможно, мы можем использовать file_io.read_file_to_string('gs://...')
, но все же это требует значительного модификации кода.
Спасибо! Это выглядит очень хорошо. Я думаю, что Tensorflow file_io также может быть решением. 'с file_io.FileIO (file_path, mode =" w ") как f'. Считаете ли вы, что это тоже нормально? Я еще не полностью тестировал. –
Я интерпретировал ваш вопрос как желающий избежать необходимости заменять все вызовы функций open() специализированными функциями. Если это не так, то есть вы хотите заменить вызовы на open(), то gcsio.open_local_or_gcs и file_io.FileIO довольно похожи, просто влияют на зависимости, которые вы вносите - file_io уже входит в TF. Но FileIO использует некоторые нестандартные режимы, поэтому это может повлиять и на ваше решение. – rhaertel80