在Google Cloud ML中提交职位培训时出错

时间:2017-03-05 01:33:01

标签: tensorflow google-cloud-ml google-cloud-ml-engine

我目前正尝试使用Facenet(用于人脸识别的Tensorflow库)提交Google Cloud ML的职业培训。我目前正在尝试图书馆的 (link is here) 部分进行模型培训。

转到Google Cloud ML,我按照本教程 (link is here) 教授您如何提交培训。

我能够成功向Google Cloud ML提交职业培训,但出现了错误。 以下是一些错误图片:

Here's a picture of the error:

Google Cloud Jobs日志中出现错误

Here's a picture of error log in Google Cloud Jobs

以下是有关Google Cloud Job日志的更详细图片

Here are more detailed pictures on Google Cloud Job logs (1)

Here are more detailed pictures on Google Cloud Job logs (2)

提交工作请求是成功的,它甚至等待Tensorflow启动,但就在那之后就出现了错误。

我用来运行它的命令是:

gcloud ml-engine jobs submit training facetraining_test4 \
--package-path=/Users/myname/Documents/projects/tf-projects/facenet/src/ \
--module-name=/Users/myname/Documents/projects/tf-projects/facenet/src/facenet_train_classifier.py \
--staging-bucket=gs://facenet-training-test \
--region=asia-east1 \
--config=/Users/myname/Documents/projects/tf-projects/facenet/none_config.yml  \
-- \
--logs_base_dir=/Users/myname/Documents/projects/tf-projects/logs/facenet/ \
--models_base_dir=/Users/myname/Documents/projects/tf-projects/models/facenet/ \
--data_dir=/Users/myname/Documents/projects/tf-projects/facenet_datasets/employee_dataset/employee/employee_maxpy_mtcnnpy_182/ \
--image_size=160 \
--model_def=models.inception_resnet_v1 \
--lfw_dir=/Users/myname/Documents/projects/tf-projects/facenet_datasets/lfw/lfw_mtcnnpy_160/ \
--optimizer=RMSPROP \
--learning_rate -1  \
--max_nrof_epochs=80 \
--keep_probability=0.8 \
--learning_rate_schedule_file=/Users/myname/Documents/projects/tf-projects/facenet/data/learning_rate_schedule_classifier_casia.txt \
--weight_decay=5e-5  \
--center_loss_factor=1e-4  \

有关如何解决此问题的任何建议?谢谢!

2 个答案:

答案 0 :(得分:1)

当您在Cloud ML Engine上运行时,您正在远程环境中运行;所以文件路径不会与本地环境相同。如果你需要导入python模块,你需要将它们包含在你构建的Python包中,然后使用包名称导入它们。

有关如何构建软件包的文档,请参阅SetupTools docs

这是30秒版本

  1. 按如下方式整理您的代码
  2. 
        my_package/__init__.py
        my_package/moduleA.py
        my_package/moduleB.py
        my_package/...
        setup.py
    
    1. 您的setup.py文件以此
    2. 开头
          from setuptools import find_packages
          from setuptools import setup
      
          REQUIRED_PACKAGES = []
      
          setup(
              name='my_package',
              version='0.1.1',
              author='Author',
              author_email='author@gmail.com',
              install_requires=REQUIRED_PACKAGES,
              packages=find_packages(),
              description='Description',
              requires=[],)
      
      1. 按如下方式构建程序包
      2. python ./setup.py sdist
        
        1. 当在Cloud ML Engine中安装软件包时,您将能够将代码导入为
        2. from my_package import moduleA
          

答案 1 :(得分:0)

查看上面的错误消息,您的问题似乎与" ImportError相关:不支持按文件名导入"来自Python的错误。没有查看你的python源代码,我无法告诉你如何解决它,但以下链接应该可以解决你的问题:

Python / ImportError: Import by filename is not supported

通常使用文件路径查找要导入的位置,并确保正确使用这些功能。