在 Google Colab 上设置 MLflow

2024-03-31

我经常使用 Google Colab 来训练 TF/PyTorch 模型,因为 Colab 为我提供了 GPU/TPU 运行时。此外,我喜欢使用 MLflow 来存储和比较经过训练的模型、跟踪进度、共享等。将 MLflow 与 Google Colab 结合使用有哪些可用的解决方案?


有一个Github问题 https://github.com/mlflow/mlflow/issues/2350对此,以及贡献者dmatrix https://github.com/mlflow/mlflow/issues/2350#issuecomment-677922065很友善地提供了notebook https://github.com/dmatrix/google-colab/blob/master/mlflow_issue_2350.ipynb具有完整的解决方案,利用pyngrok.

这是代码(旨在在 Colab 笔记本上运行),使用隐式重新发布到此处作者的许可 https://github.com/mlflow/mlflow/issues/2350#issuecomment-689657744:

!pip install mlflow --quiet
!pip install pyngrok --quiet

import mlflow

with mlflow.start_run(run_name="MLflow on Colab"):
  mlflow.log_metric("m1", 2.0)
  mlflow.log_param("p1", "mlflow-colab")

# run tracking UI in the background
get_ipython().system_raw("mlflow ui --port 5000 &") # run tracking UI in the background


# create remote tunnel using ngrok.com to allow local port access
# borrowed from https://colab.research.google.com/github/alfozan/MLflow-GBRT-demo/blob/master/MLflow-GBRT-demo.ipynb#scrollTo=4h3bKHMYUIG6

from pyngrok import ngrok

# Terminate open tunnels if exist
ngrok.kill()

# Setting the authtoken (optional)
# Get your authtoken from https://dashboard.ngrok.com/auth
NGROK_AUTH_TOKEN = ""
ngrok.set_auth_token(NGROK_AUTH_TOKEN)

# Open an HTTPs tunnel on port 5000 for http://localhost:5000
ngrok_tunnel = ngrok.connect(addr="5000", proto="http", bind_tls=True)
print("MLflow Tracking UI:", ngrok_tunnel.public_url)

其输出将是pyngrok- 生成的 URL 如下:

MLflow Tracking UI: https://0a23d7a7d0c4.ngrok.io

单击它将进入 MLfLow GUI 屏幕。

(对原始代码稍加修改,感谢pyngrok创造者,亚历克斯·莱尔德 https://stackoverflow.com/users/1128413/alexdlaird)

使用 MLflow 版本 1.10.0 和 1.11.0 进行测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Google Colab 上设置 MLflow 的相关文章

随机推荐

  • 去审查:“复合文字使用无键字段”和嵌入类型

    我有一个简单的结构 type MyWriter struct io Writer 然后我按以下方式使用它 writer MyWriter io Stdout 跑步时go vet这给了我一个composite literal uses unk
  • Laravel 组管理路由

    有没有一种方法可以将所有以admin 我尝试过这样的事情 但它当然不起作用 Route group admin function Route get something array uses gt mycontroller index Ro
  • Android HTTP 调用的随机异常。为什么?

    到目前为止 我正在 3 台设备上测试我的应用程序 Sprint 的 LG Optimus 设备在 https 调用上不会抛出异常 可能一周一次 T Mobile 上的 Nexus S 几乎每小时都会出现这样的内容 读取错误 ssl 0x3f
  • 如何使用 React Native 检测屏幕解锁?

    有谁知道我可以检测用户何时打开手机的方法吗 据我了解 当设备解锁时 例如输入正确的密码 android intent USER PRESENT 会被广播 但是 我不知道如何使用 React Native 来检测广播 有没有人有办法解决吗 调
  • 增加Python中cProfiler的深度以报告更多功能?

    我正在尝试分析一个调用其他函数的函数 我按如下方式调用分析器 from mymodule import foo def start foo import cProfile as profile profile run start outpu
  • 使用着色器创建模糊过滤器 - 从片段着色器访问相邻像素?

    我想使用 OpenGL ES 2 0 中的片段着色器创建模糊效果 我感兴趣的算法只是一个平均模糊 将所有相邻像素添加到我自己中并除以 9 进行标准化 但是我有两个问题 1 这是否需要我首先渲染到帧缓冲区 然后切换渲染目标 或者有更简单的方法
  • 在 Java 中过滤组合框数据

    在java中 假设有两个jpanel 当我单击Panle 1 上的按钮 A 时 它将显示面板 2 在面板 2 中 有两个组合框 我完成了所有必要的编码 但要过滤的一件事是组合框 1 将仅显示那些具有 book 前缀的数据 组合框 2 将仅显
  • Hibernate 对象相等性检查[重复]

    这个问题在这里已经有答案了 可能的重复 Hibernate 具有相同标识符值的不同对象已与会话关联 https stackoverflow com questions 3553200 hibernate different object w
  • 如何管理 Workflow Foundation 中的版本?

    当您有长时间运行的工作流并且持久性存储中可能同时有两个或三个版本并且必须能够访问所有版本时 如何管理 WF 中的工作流版本 我撰写了一系列 4 篇博客文章 涵盖了对长期运行的工作流程进行版本控制时需要注意的大部分内容 我倾向于避免的一件事是
  • 在设备上打印视图层次结构

    在我无法实际访问的三星手机上调试我的应用程序 结果出现奇怪的结果 我想要求用户运行一个已检测的应用程序来帮助调试 我的应用程序获得view其中有一个未知的 对我来说 层次结构 ViewGroupsETC 有没有办法 走路 View并打印出一
  • sencha列表分页插件

    我正在尝试使用 sencha touch 的列表分页插件 但几乎没有关于如何使用它的好 或坏 文档 我很困惑 当我激活列表中的插件时 this myList new Ext List store this myStore plugins p
  • 在 vim 中反转逗号分隔列表的最快方法是什么?

    我经常必须更正以下 Rails 代码 assert equal value expected assert equal 的两个参数是乱序的 应该是 assert equal expected value 在vim中 从第一行到第二行最有效的
  • 如何使用 C++ 初始化 const char 数组数据成员?

    我有一个与 C 类成员初始化相关的问题 下面的代码说明了我的问题 class ABCD public ABCD ObjNum 3 ABCD static const unsigned char getByte 8 const int Obj
  • 获取不包含滚动条宽度的 Div 宽度

    我这里有个问题 这里有两个div div1 和 div2 这里我想根据 div2 宽度调整 div1 宽度 我的要求是 div1 不应包含滚动条的宽度 即我应该设置 div1 的高度 不包括 div2 中滚动条的宽度 我想要一个 jquer
  • 如何将目录中每个文件中的制表符转换为空格?

    如何将目录中每个文件中的制表符转换为空格 可能递归地 另外 有没有办法设置每个选项卡的空格数 简单替换为sed可以 但不是最好的解决方案 如果选项卡之间存在 额外 空格 则它们在替换后仍将存在 因此边距将参差不齐 在行中间展开的选项卡也将无
  • 什么是方法内联? [复制]

    这个问题在这里已经有答案了 我一直试图理解这真正意味着什么 内联函数 在 C 中 定义的成员函数 类声明 2 函数 调用编译器替换为 该函数的实际代码 这 关键字 inline 可用于提示 编译器执行内联 成员身体的扩张或 非成员函数 in
  • 我可以在为 kindle fire 商店发布的应用程序中使用 Google Analytics 吗?

    我目前在 Play 商店中有一个使用谷歌分析的应用程序 我想修改并发布该应用程序到 Kindle 应用程序商店 并且仍然能够使用 GA 据我了解 这取决于播放服务能否正常工作 显然 kindle 设备上没有播放服务 但有没有办法将它们包含在
  • 将 ZeroMQ 交叉编译为 ARM,以便在 MonoTouch iPhone 应用程序配置设置中使用

    我正在尝试在使用 MonoTouch 用 C 开发的 iPhone 应用程序中使用 ZeroMQ 库 我几乎解决了所有的问题 却在最后一道坎倒下了 我正在使用 ZeroMQ 2 1 10 和 C CLR 绑定 包装器 并在 Mac OS X
  • 为什么默认字符串比较器无法保持传递一致性?

    我知道这个问题之前已经注意到 https stackoverflow com questions 9354966 string sorting issue in c sharp 9355086 9355086 或多或少简洁 但我仍然创建这个
  • 在 Google Colab 上设置 MLflow

    我经常使用 Google Colab 来训练 TF PyTorch 模型 因为 Colab 为我提供了 GPU TPU 运行时 此外 我喜欢使用 MLflow 来存储和比较经过训练的模型 跟踪进度 共享等 将 MLflow 与 Google