簡體   English   中英

如何從 Azure ML 管道腳本步驟注冊 model

[英]How to register model from the Azure ML Pipeline Script step

我在 AzureML 中運行pipeline.submit() ,它有一個PythonScriptStep 在這一步中,我從 tensorflow-hub 下載了一個 model ,重新訓練並保存為.zip ,最后,我想將它注冊到 Z3A580F142203677F153Z30898F6 但由於在腳本內部我沒有工作區, Model.register()並非如此。 所以我正在嘗試使用Run.register_model()方法,如下所示:

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 { "error": { "message": "Could not locate the provided model_path retrained.zip 在上傳到運行的文件集中:

盡管我在.zip目錄中有重新訓練的./outputs ,我們可以從日志中看到:

['retrained.zip']
========================

我想我做錯了什么?

在嘗試注冊 model 之前,我可以通過將 model 顯式上傳到運行歷史記錄中來解決相同的問題( ModelPathNotFoundException ):

run.upload_file("outputs/my_model.pickle", "outputs/my_model.pickle")

我發現這很令人驚訝,因為在許多官方示例中以及根據upload_file() 文檔都沒有提到這一點:

運行自動捕獲指定 output 目錄中的文件,大多數運行類型默認為“./outputs”。 僅當需要上傳其他文件或未指定 output 目錄時才使用 upload_file。

看起來這里缺少路徑的一部分:

model_path=os.path.join(archive_name+'.zip')

路徑是否應該包括輸出子文件夾,像這樣?

model_path=os.path.join("./outputs",archive_name+'.zip')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM