2017-07-05 1 views
0

Je voudrais former mon modèle en local avec cette commande:formation sur place avec ML Moteur et gcloud

gcloud ml-engine local train 
    --module-name cloud_runner 
    --job-dir ./tmp/output 

La question est qu'il se plaint que --job-dir: Must be of form gs://bucket/object.

Ceci est un train local, donc je me demande pourquoi il veut que la sortie soit un seau de stockage gs plutôt que dans un répertoire local.

+0

Il est peut-être un bug ... – hellowill89

Répondre

1

Comme expliqué par d'autres gcloud --job-dir s'attend à ce que l'emplacement soit dans GCS. Pour contourner cela, vous pouvez le passer en tant que dossier directement sur votre module.

gcloud ml-engine local train \ 
    --package-path trainer \ 
    --module-name trainer.task \ 
    -- \ 
    --train-files $TRAIN_FILE \ 
    --eval-files $EVAL_FILE \ 
    --job-dir $JOB_DIR \ 
    --train-steps $TRAIN_STEPS 
+0

droit, juste besoin de se rappeler de vous déplacer en --job-dir' sauvegarde lors de la formation pour de vrai. – hellowill89

+1

@ hellowill89 Ceci a été corrigé dans une future version qui sera disponible dans les prochaines semaines. – rhaertel80

+0

@ rhaertel80 Merci! – hellowill89

1

L'argument de chemin --package à la commande gcloud doit pointer vers un répertoire qui est un paquet de python valide, à savoir un répertoire contenant une initialisation fichier .py (souvent un fichier vide). Notez qu'il devrait s'agir d'un répertoire local, pas un sur GCS.

L'argument --module sera le nom complet d'un module Python valide dans ce package. Vous pouvez organiser vos répertoires comme vous le souhaitez, mais par souci de cohérence, tous les exemples ont un package Python nommé trainer avec le module à exécuter nommé task.py.

- Source

Vous avez donc besoin de changer ce bloc avec chemin valide:

gcloud ml-engine local train 
    --module-name cloud_runner 
    --job-dir ./tmp/output 

Plus précisément, votre erreur est due à --job-dir ./tmp/output parce qu'elle attend un chemin sur votre gcloud

1

La formation locale tente d'émuler ce qui se passe lorsque vous utilisez le cloud car le but de la formation locale est de détecter les problèmes avant de soumettre votre travail au service.

L'utilisation d'un emploi dir locale lors de l'utilisation du service de CMLE est une erreur parce que la sortie ne persistera après que le travail se termine.

Ainsi, la formation locale avec gcloud exige également que l'emploi-dir être un endroit GCS.

Si vous souhaitez exécuter localement et ne pas utiliser GCS, vous pouvez simplement lancer votre programme tensorflow directement et ne pas utiliser gcloud.