Azure Machine Learning服务(预览版)项目的文件夹结构的最佳做法是什么

问题描述 投票:2回答:1

我对新发布的Azure机器学习服务(预览版)感到非常兴奋,这比以前的(和已弃用的)机器学习工作台有了很大的进步。

但是,我正在考虑有关在项目中构造文件夹和文件的最佳实践。 我会尽力解释我的想法。

查看有关模型训练的文档(例如, 教程#1 ),似乎很好的做法是将所有训练脚本和必要的其他脚本放在子文件夹中,以便可以将其传递到Estimator对象中,而无需同时传递项目中的所有其他文件。 这可以。

但是,在处理服务的部署,尤其是映像的部署时,文档(例如, 教程#2 )似乎指示计分脚本必须位于根文件夹中。 如果我尝试引用位​​于子文件夹中的脚本,则会收到一条错误消息,指出

WebserviceException: Unable to use a driver file not in current directory. Please navigate to the location of the driver file and try again.

这可能没什么大不了的。 除此之外,我在训练脚本和计分脚本中都导入了一些其他脚本,并且我不想复制那些其他脚本以能够在训练脚本和计分脚本中导入它们。

执行培训和部署时,我主要在Jupyter Notebook中工作,我当然可以使用一些技巧从其他文件夹中读取特定脚本,将它们保存为磁盘副本,执行培训或部署,同时参考以下内容。复制并最终删除副本。 这将是一个体面的解决方法,但在我看来,应该有一个不仅仅是体面的更好的方法。

你怎么看?

azure-machine-learning-studio
1个回答
0
投票

当前,score.py需要在当前工作目录中,但是依赖项脚本( ContainerImage.image_configuration依赖项参数)可以位于子文件夹中。

因此,您应该能够使用如下所示的文件夹结构:

./score.py 
./myscripts/train.py 
./myscripts/common.py

请注意,在Web服务部署过程中会保留相对文件夹结构。 如果您从score.py引用子文件夹中的公用文件,则该引用在已部署映像中应有效。

© www.soinside.com 2019 - 2024. All rights reserved.