我正在尝试使用谷歌云端机器学习引擎为一个sklearn模型实现基于云的预测。我能够做到这一点,但似乎即使使用REST API,它总是引用一个训练器模块,这个模块实际上是在离线环境或在安装了sklearn的标准Python3运行时上进行训练的,而不是任何谷歌服务:
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)
实际的训练是由我的Python代码运行sklearn完成的 – 即谷歌云端机器学习引擎所做的只是接收来自sklearn model.bst 文件的模型规格,然后运行实际的预测。我的理解正确吗?谢谢你的帮助,
回答:
为了回答你的问题,这里有一些关于机器学习引擎的背景信息:命令中提到的模块是主模块,它启动整个训练过程。这个过程将包括代码中的训练文件和评估文件,如这个例子所示,机器学习引擎将负责根据这些文件创建模型。因此,当向机器学习引擎提交训练作业时,训练过程将使用机器学习引擎的资源来完成每个训练步骤以创建模型,该模型可以部署到机器学习引擎中进行预测。
对于你的问题,机器学习引擎不会干预训练数据集和模型编码。这就是为什么它需要带有模型规格和代码的训练器模块。它为模型训练和预测提供资源,并管理模型的不同版本。这份文档中的图表应该是一个很好的参考,说明机器学习引擎做了什么。