我有一个 Python 脚本,它定义了一个 CMLE 作业,如下所示:
import os
import sys
import logging
from config import Config # this holds all my config variables
from pumps import trainer
from googleapiclient import discovery, errors
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = Config.GOOGLE_APPLICATION_CREDENTIALS
# The trainer folder needs to be added to PYTHONPATH for google to find it
sys.path.append(os.path.abspath(os.pardir)+'/pumps/trainer')
training_inputs = {'scaleTier': 'BASIC',
'pythonModule': 'trainer.task',
'args': ['--bucket', Config.BUCKET_NAME,
'--model_dir', Config.MODEL_DIR,
'--transformer_dir', Config.TRANSFORMER_DIR,
'--data', Config.DATA_FILE,
'--n_estimators', '100',
'--class_weight', 'balanced_subsample',
'--criterion', 'entropy'],
'region': Config.REGION,
'jobDir': Config.JOB_DIR,
'runtimeVersion': Config.RUNTIME_VERSION,
'pythonVersion': Config.PYTHON_VERSION}
job_spec = {'jobId': Config.JOB_NAME,
'trainingInput': training_inputs}
# the format for this variable is projects/<your_project_name>
project_id = 'projects/{}'.format(Config.PROJECT)
cloudml = discovery.build('ml', 'v1')
request = cloudml.projects().jobs().create(body=job_spec,
parent=project_id)
response = request.execute()enter code here
不幸的是,我得到了错误"Field: package_uris Error: Tarball URIs of the training program must be provided.">
我的等效 bash 脚本运行没有问题,似乎 Python 版本缺少等效 --package-path
标志。这是 Python API 的限制还是我只是遗漏了什么?