首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Azure ML管道脚本步骤注册模型

如何从Azure ML管道脚本步骤注册模型
EN

Stack Overflow用户
提问于 2019-11-19 11:56:24
回答 2查看 3.6K关注 0票数 7

我正在运行pipeline.submit() in AzureML,它有一个PythonScriptStep。在这个步骤中,我从tensorflow-hub下载一个模型,重新训练它并将它保存为一个.zip,最后,我想在Azure中注册它。但是,由于脚本中没有工作区,所以Model.register()不是这样的。因此,我尝试使用Run.register_model()方法如下:

代码语言:javascript
复制
os.replace(os.path.join('.', archive_name + '.zip'), 
           os.path.join('.', 'outputs', archive_name + '.zip'))

print(os.listdir('./outputs'))
print('========================')

run_context = Run.get_context()
finetuning_model = run_context.register_model(model_name='finetuning_similarity_model',
                                              model_path=os.path.join(archive_name+'.zip'),
                                              tags={},
                                              description="Finetuning Similarity model")

但我犯了一个错误:

ErrorResponse {“错误”:{“消息”:“无法在上传到运行的文件集中找到提供的model_path retrained.zip:

尽管我在./outputs dir中有经过再训练的./outputs,但我们从日志中可以看到:

代码语言:javascript
复制
['retrained.zip']
========================

我想我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-11 12:33:03

在尝试注册模型之前,通过将模型显式上载到运行历史记录中,我能够修复相同的问题(ModelPathNotFoundException):

代码语言:javascript
复制
run.upload_file("outputs/my_model.pickle", "outputs/my_model.pickle")

这让我感到惊讶,因为许多官方例子和upload_file() 文档都没有提到这一点。

在指定的输出目录中运行自动捕获文件,对于大多数运行类型,默认为“./ output”。仅在需要上载其他文件或未指定输出目录时才使用upload_file。

票数 15
EN

Stack Overflow用户

发布于 2019-11-19 20:55:24

这里似乎缺少了一段路:

Model_path=os.path.join(档案名称+‘..zip’)

路径是否应包括输出子文件夹,如以下所示?

model_path=os.path.join("./outputs",归档_name+‘..zip’)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58933565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档