我目前正在尝试使用 Facenet(一个用于人脸识别的 Tensorflow 库)在 Google Cloud ML 上提交工作培训。我目前正在尝试这个 (link is here) 库的一部分,用于对模型进行训练。
转到 Google Cloud ML,我正在学习本教程 (link is here) 它教您如何提交培训。
我能够成功向 Google Cloud ML 提交工作培训,但出现错误。 以下是错误的一些图片:
这是来自 Google Cloud Jobs 日志的错误
这里有关于 Google Cloud 作业日志的更详细的图片
提交作业请求成功,它甚至在等待 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 \
关于如何解决这个问题有什么建议吗?谢谢!
最佳答案
当您在 Cloud ML Engine 上运行时,您是在远程环境中运行;因此文件路径不会与本地环境相同。如果您需要导入 python 模块,您需要将它们包含在您构建的 Python 包中,然后使用包名称导入它们。
有关如何构建包的文档,请参阅 SetupTools docs
这是 30 秒的版本
- 按如下方式组织代码
my_package/__init__.py
my_package/moduleA.py
my_package/moduleB.py
my_package/...
setup.py
- 对于您的 setup.py 文件,以此开头
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=[],)
- 构建如下包
python ./setup.py sdist
- 当包安装在 Cloud ML Engine 中时,您将能够将您的代码导入为
from my_package import moduleA
关于tensorflow - 在 Google Cloud ML 中提交工作培训时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42603427/