Google Storage (gs) Wrapper-Datei für Cloud ML ein / aus?

8

Google hat kürzlich den Clould ML Ссылка angekündigt und es ist sehr nützlich. Eine Einschränkung ist jedoch, dass die Eingabe / Ausgabe eines Tensorflow-Programms gs: // unterstützen sollte.

Wenn wir alle Tensorflow-APIS zum Lesen / Schreiben von Dateien verwenden, sollte es OK sein, da diese APIs gs:// unterstützen.

Wenn wir jedoch native Datei-IO-APIs wie open verwenden, funktioniert das nicht, weil sie gs://

nicht verstehen

Zum Beispiel:

%Vor%

Dieser Code funktioniert in Google Cloud ML nicht.

Es ist jedoch sehr mühsam, alle nativen Datei-IO-APIs in Tensorflow-APIs oder Google Storage Python-APIs zu ändern. Gibt es einen einfachen Weg, dies zu tun? Alle Wrapper zur Unterstützung von Google-Speichersystemen, gs:// über der nativen Datei IO?

Wie hier vorgeschlagen Eingelegte Scipy Sparse Matrix als Eingabedaten? Vielleicht können wir file_io.read_file_to_string('gs://...') verwenden, aber dies erfordert eine signifikante Code-Änderung.

    
Sung Kim 03.11.2016, 08:08
quelle

3 Antworten

4

Eine Lösung besteht darin, beim Start des Programms alle Daten auf den lokalen Datenträger zu kopieren. Sie können dies mit gsutil innerhalb des Python-Skripts tun, das ausgeführt wird, etwa wie folgt:

%Vor%

Und wenn Sie Ausgaben haben, können Sie sie auf lokale Festplatte und gsutil rsync sie schreiben. (Aber, seien Sie vorsichtig, um Neustarts richtig zu behandeln, weil Sie möglicherweise auf eine andere Maschine gesetzt werden).

Die andere Lösung ist Affe patch open (Anmerkung: ungetestet):

%Vor%

Seien Sie sicher, dass Sie das tun, bevor irgendein Modul versucht, von GCS zu lesen.

    
rhaertel80 03.11.2016, 08:42
quelle
3

Mach es so:

%Vor%

Oder Sie können die Beizdatei wie folgt lesen:

%Vor%     
Fuyang Liu 05.04.2017 21:34
quelle
1

apache_beam hat die gcsio Modul, mit dem ein Standard-Python-Dateiobjekt zum Lesen / Schreiben von GCS zurückgegeben werden kann Objekte. Sie können dieses Objekt mit jeder Methode verwenden, die mit Python-Dateiobjekten arbeitet. Zum Beispiel

%Vor%     
Jeremy Lewi 03.11.2016 14:23
quelle