我正在寻找一种方法来并行运行带有不同用户参数的相同训练作业。我需要为每个product_X并行运行MYMODULE。MYMODULE读取user_arg,但我需要每次读取时,它读取不同的产品,并并行启动它们。我知道一种解决方案是分别运行三个训练代码块,但可能有一个函数可以直接用一个来完成。
!gcloud ai-platform jobs submit training demo_training_$(date +"%Y%m%d_%H%M%S") \ --staging-bucket gs: MYBUCKET\ --package-path MYPATH \ --module-name MYMODULE \ --region MYREGION \ --runtime-version=2.1 \ --python-version=3.7 \ --scale-tier BASIC \ -- \ --model-bucket MYBUCKET \ --output-dir MYDIR \ --user_arg product_1, product_2, product_3 \
MYMODULE看起来像这样,我需要在每次运行时读取不同的产品。
def train_and_evaluate (args): ...code product = args.user_arg ...more code
回答:
对于这种类型的调用没有客户端库。但在谷歌,一切皆API。因此,您可以直接调用API来运行您的作业。
您可以调用AI Platform作业创建API来创建您的作业。您需要指定一个训练作业体,其中包含一个训练作业输入。在这个对象中,您有提供给训练作业的args
列表。
如果您想要一个填充JSON的示例,可以在运行您的gcloud命令时使用--log-http
选项,API调用将会在控制台上打印出来。
当您执行API调用时,您需要进行认证调用。您可以使用Google OAuth2库来获取凭证。然后,生成一个访问令牌,并将其作为Authorization: Bearer
头部添加。别忘了也在头部中添加content-type
(当然是application/json
)