Problemi con Google Cloud ML e GCS Bucket

Sto usando implementazioni Tensorflow open source di documenti di ricerca, ad esempio DCGAN-tensorflow . La maggior parte delle librerie che sto utilizzando sono configurate per addestrare il modello localmente, ma voglio utilizzare Google Cloud ML per addestrare il modello poiché non ho una GPU sul mio laptop. Sto trovando difficile cambiare il codice per supportare i bucket GCS. Al momento, sto salvando i miei registri e modelli in / tmp e poi eseguendo un comando ‘gsutil’ per copiare la directory in gs: // my-bucket alla fine del training ( esempio qui ). Se provo a salvare il modello direttamente su gs: // my-bucket, non viene mai visualizzato.

Per quanto riguarda i dati di allenamento, uno dei campioni di tensorflow copia i dati da GCS a / tmp per la formazione ( esempio qui ), ma funziona solo quando il set di dati è piccolo. Voglio usare celebA, ed è troppo grande per copiare in / tmp ogni esecuzione. C’è qualche documentazione o guida su come procedere per aggiornare il codice che si allena localmente per utilizzare Google Cloud ML?

Le implementazioni eseguono varie versioni di Tensorflow, principalmente .11 e .12

Attualmente non esiste una guida definitiva. L’idea di base sarebbe sostituire tutte le occorrenze di operazioni di file Python native con equivalenti nel modulo file_io , in particolare:

  • open() -> file_io.FileIO()
  • os.path.exists() -> file_io.file_exists()
  • glob.glob() -> file_io.get_matching_files()

Queste funzioni funzioneranno localmente e su GCS (oltre a qualsiasi file system registrato). Si noti, tuttavia, che ci sono alcune lievi differenze in file_io e nelle operazioni di file standard (ad esempio, è supportato un diverso set di “modalità”).

Fortunatamente, il checkpoint e la scrittura riassuntiva funzionano subito, assicurati di passare un percorso GCS a tf.train.Saver.save e tf.summary.FileWriter .

Nell’esempio che hai inviato, sembra potenzialmente doloroso. Prendi in considerazione la possibilità di eseguire il patch delle funzioni Python per mappare gli equivalenti di TensorFlow quando il programma inizia a farlo solo una volta (mostrato qui ).

Come nota a margine, tutti gli esempi in questa pagina mostrano i file di lettura da GCS.