我最近一直在尝试向 GCP 的 AI 平台提交训练任务。
我使用以下代码成功提交了训练我的 pytorch 变压器模型的任务:
gcloud ai-platform jobs submit training ${JOB_NAME} \
--region=us-west1 \
--module-name PipeLiner.PCM_main \
--master-image-uri=gcr.io/cloud-ml-public/training/pytorch-cpu.1-4 \
--package-path ../PipeLiner/ \
--scale-tier=BASIC \
--job-dir=${JOB_DIR} \
-- \
--config_file=/Users/mukundhmurthy/PycharmProjects/PipLinerTop/PipeLiner/PCM.yaml \
--num-epochs=1 \
--batch-size=2 \
--learning-rate=0.00001 \
在 gcloud 日志记录中,我不断收到此错误:
subprocess.CalledProcessError: Command '['pip3', 'install', '--user', '--upgrade', '--force-reinstall', '--no-deps', 'tape-pcm-trainer-0.1.tar.gz']' returned non-zero exit status 1.
认为这与我的 setup.py 文件有关,我也在那里检查了我的代码:
from setuptools import find_packages
from setuptools import setup
with open('requirements.txt') as f:
req = f.read().splitlines()
setup(
name='tape-pcm-trainer',
version='0.1',
install_requires=req,
packages=find_packages(),
include_package_data=True,
description='gcloud package for training TAPE on PCM dataset'
)
我还运行了 python setup.py sdist 以确保代码可以为我的包创建正确的 tar.gz 文件。
我检查了我的 python 版本,并确保将我的 pip 更新到最新版本。关于如何克服这个错误的任何帮助都会很棒。
更新:这不是 gcloud 问题。当我生成我的 requirements.txt 文件时,一些 conda 要求会潜入文件中。不幸的是,gcloud 训练作业记录器没有显示 dockerfile 中运行命令之外的堆栈跟踪,因此需要一段时间才能查明这一点。