我正在尝试使用Google Cloud ML引擎为sklearn模型实现基于云的预测。我能够执行此操作,但是,即使使用REST API,它似乎始终引用实际上是脱机训练的Trainer模块,或者在安装了sklearn的标准python3运行时上而不是任何Google服务上进行训练:
training_inputs = {'scaleTier': 'BASIC',
#'masterType': 'standard',
#'parameterServerType': 'large_model',
#'workerCount': 9,
#'parameterServerCount': 3,
'packageUris': ['gs://pathto/trainer/package/packages/trainer-0.0.0.tar.gz'],
'pythonModule': 'trainer.task',
'region': 'europe-west1',
'jobDir': ,
'runtimeVersion': '1.12',
'pythonVersion': '3.5'}
所以,无论是使用gcloud(命令行提交)还是通过以下方式使用REST API,我的观察方式:
request = ml.projects().jobs().create(body=job_spec, parent=project_id)
实际的训练是通过运行sklearn的python代码完成的,即google cloud ML引擎所做的只是从sklearn的 model.bst 文件接收模型规格,然后运行实际的预测。我的理解正确吗?谢谢您的帮助,
答案 0 :(得分:1)
为回答您的问题,以下是有关ML Engine的一些背景知识:命令中引用的模块是the main module,它将启动整个培训过程。此过程将像this example一样在代码中包含训练文件和评估文件,并且ML Engine将负责根据这些文件创建模型。因此,在向ML Engine提交训练作业时,训练过程将在每个训练步骤中使用ML Engine资源来创建模型,该模型可以部署到ML Engine中进行预测。
对于您的问题,ML Engine不会干扰训练数据集和模型编码。那就是为什么它需要带有模型规格和代码的教练员模块的原因。它为模型训练和预测提供资源,并管理模型的不同版本。 document中的图应该是ML Engine的功能的良好参考。