[英]how to skip entry point when having multiple entry points in mlflow project
我希望能夠根據某些 arguments 或早期入口點的結果跳過我的MLProject
中指定的一些入口點。
如何在不退出整個 MLflow 項目的情況下跳過入口點並繼續下一個入口點?
我的文件如下:
#MLproject
name: ...
conda_env: ...
entry_points:
main:
command: "python3 a.py"
secondary:
command: "python3 b.py"
#a.py
import sys
if __name__ == "__main__":
print("skipping a.py.")
sys.exit(0)
#b.py
if __name__ == "__main__":
print("reached b.py.")
我預計這將退出a.py
並繼續b.py
,但似乎sys.exit(0)
殺死了一切,從mlflow run.
:
INFO mlflow.projects.utils: === Created directory /var/folders/bm/dbpln1sj3c1cn4p1gnvvp8s80000gn/T/tmpz1u4wkqq for downloading remote URIs passed to arguments of type 'path' ===
INFO mlflow.projects.backend.local: === Running command 'source /Users/pme/opt/anaconda3/bin/../etc/profile.d/conda.sh && conda activate mlflow-19a070d548e136c3ce89701ba50b4a6b5f1d047b 1>&2 && python3 a.py' in run with ID '0ee84f73fc044603b3e625d8029337de' ===
skipping 'a.py'.
INFO mlflow.projects: === Run (ID '0ee84f73fc044603b3e625d8029337de') succeeded ===
這不是入口點的使用方式。 入口點是可以在項目中執行的命令,因此您必須在需要時調用它們。 無論是mlflow run
命令行工具,還是mlflow.run()
Python API。(它們不會自動調用)
當你運行mlflow run
命令時,你還可以告訴入口點的名稱與-e
一起使用,否則,它的值默認為main
。
那么解決方案是什么? 您可以更改命令以使用-e
參數,如 文檔中所述
mlflow run . -e secondary
或者您可以將MLproject
文件更改為此並更改main
入口點(默認入口點)。
#MLproject
name: ...
conda_env: ...
entry_points:
main:
command: "python3 b.py"
secondary:
command: "python3 a.py"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.