0

J'utilise des implémentations Open Source Tensorflow d'articles de recherche, par exemple DCGAN-tensorflow. La plupart des bibliothèques que j'utilise sont configurées pour former le modèle localement, mais je veux utiliser Google Cloud ML pour former le modèle car je n'ai pas de GPU sur mon ordinateur portable. Je trouve qu'il est difficile de modifier le code pour prendre en charge les compartiments GCS. Pour le moment, je sauvegarde mes journaux et modèles dans/tmp, puis exécute une commande 'gsutil' pour copier le répertoire dans gs: // my-bucket à la fin de la formation (example here). Si j'essaie d'enregistrer le modèle directement dans gs: // my-seau, il ne s'affiche jamais. Pour les données d'apprentissage, l'un des échantillons tensorflow copie les données de GCS vers/tmp pour l'apprentissage (example here), mais cela ne fonctionne que lorsque l'ensemble de données est petit. Je veux utiliser celebA, et il est trop grand pour copier/tmp à chaque passage. Existe-t-il des documents ou des guides sur la mise à jour du code qui s'entraîne localement pour utiliser Google Cloud ML?Problèmes Google Cloud ML et GCS Bucket

Les implémentations sont en cours d'exécution différentes versions de tensorflow, principalement .11 et .12

Répondre

6

Il n'y a pas de guide définitif. L'idée de base serait de remplacer toutes les occurrences d'opérations de fichier Python natif avec des équivalents dans le module file_io, notamment:

Ces fonctions fonctionneront localement et sur GCS (ainsi que sur n'importe quel système de fichiers enregistré). Notez, cependant, qu'il existe quelques légères différences dans file_io et les opérations de fichier standard (par exemple, un ensemble différent de «modes» sont pris en charge). Heureusement, le point de contrôle et l'écriture récapitulative fonctionnent correctement, assurez-vous de passer un chemin GCS à tf.train.Saver.save et tf.summary.FileWriter.

Dans l'échantillon que vous avez envoyé, cela semble potentiellement douloureux. Considérez le singe corrigeant les fonctions de Python pour correspondre aux équivalents de TensorFlow quand le programme commence à devoir le faire seulement une fois (démontré here). En note, tous les exemples sur la page this montrent des fichiers de lecture de GCS.

+0

Merci pour cette info. Je rencontre un problème en essayant de lire dans un fichier image. Au lieu d'utiliser scipy.misc.imread ("gs: // BUCKET/PATH") qui ne fonctionne pas avec un URI GCS, j'ouvre d'abord le fichier en utilisant file_io: scipy.misc.imread (file_io.FileIO (chemin, mode = 'r')). Cela semble renvoyer un objet au lieu d'un tableau. Je ne suis pas sûr de savoir comment résoudre ce problème sur Cloud ML puisque les discussions en ligne semblent indiquer que c'est un problème avec l'installation PIL. – psoulos

+0

Il s'agit d'un hack moche, mais vous pouvez utiliser subprocess dans votre setup.py pour faire des choses comme 'apt-get' et' pip install'. Cela dit, laissez-moi enquêter. Il pourrait être logique d'afficher une question distincte sur cette question. – rhaertel80

+0

noté cela dans ma réponse à votre autre question ici (http://stackoverflow.com/questions/42821093/google-cloud-ml-scipy-misc-imread-returning-pil-jpegimageplugin-jpegimagefile) mais le problème semble être un bogue dans la version de file_io dans TF 0.12.1, et est corrigé dans TF 1.0 –