如果您从事深度学习工作,您可能遇到过模型学习时间过长的情况,您必须继续观察它的进展,但是坐在办公桌前看着它学习并不是最令人兴奋的事情,为此,本文的目的是介绍 CodeMonitor,一个简单但非常有用的 Python 库。通过将每个时期的报告以消息的形式直接发送到您的手机,即使您远离计算机,它也可以帮助您密切关注您的模型。

关于 CodeMonitor,您需要了解的第一件事是它是一项开源计划,因此任何建议或问题反驳都非常受欢迎。该代码托管在 Github 上,对于任何报告,请使用问题部分。

GitHub 徽标Lucasfrota/CodeMonitor

Code Monitor 是一种将代码反馈作为 Telegram 消息发送到智能手机的简单方法!

目前,该库仅使用 Telegram 发送消息,并且有两种方法可以发送消息,您可以使用 Keras 回调,该回调将在每个 epoch 结束时将训练生成的日志报告发送到您的 Telegram 聊天中,这些日志可能是丢失或准确性,例如,它可能会根据您的项目而有所不同。您可以使用它的另一种方式是发送您喜欢的任何字符串,作为消息,因此您可以在您想出的任何上下文中发送任何性质的消息。

在本文中,我假设您已经拥有一个 Keras 模型,如果不是您的情况,您可以通过这个教程了解更多关于 Keras 的信息,该教程解决了图像上手写文本的分类问题,稍后再回来,或者只是阅读它而不完全实现代码。

设置

要导入此库,您可以直接从 GitHub 下载源代码或使用 pip 获取它,在本教程中,为了简单起见,我将使用第二个选项,只需将以下代码行复制并粘贴到您的终端上(我们假设您已经安装了 pip,要了解有关 pip 的更多信息,请访问他们的安装页面)。

pip install CodeMonitor

进入全屏模式 退出全屏模式

安装完成后,您需要设置 Telegram 端,这非常简单,如果您已经在手机上安装了该应用程序,只需打开它并触摸右上角的搜索图标并搜索 CodeMonitor 并在图像中下面,选择它。

[搜索 CodeMonitor bot](https://res.cloudinary.com/practicaldev/image/fetch/s--kAuuHyi---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev -to-uploads.s3.amazonaws.com/i/s52ckkgx00auwmh2vtro.png)

此时您只需要向它发送任何消息,作为响应,您将收到一个代码,这是聊天 ID,我们正在使用它向此聊天发送消息,请将此代码保密,因为如果有人有它可以向您发送消息。

[](https://res.cloudinary.com/practicaldev/image/fetch/s--BW0pHx_y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads。 s3.amazonaws.com/i/d3ymwuy1n5m0gdbirlg8.jpg)

现在一切都在 Telegram 端设置好了,所以我们可以回到计算机并从 python 发送我们的第一条消息!在 python 方面,我们有两个类负责我们之前讨论过的功能,让我们导入它们。

from CodeMonitor.telegram import Messenger, FitMonitor

进入全屏模式 退出全屏模式

请注意,在示例代码中,我们将使用“123456789”作为聊天 ID,但是,您需要在代码中替换它

信使

此类允许您将任何您想要的字符串发送到 Telegram 聊天,只需要 Telegram 侧部分中提到的聊天 id。

messenger = Messenger("123456789")

进入全屏模式 退出全屏模式

当类被实例化时,它会发送消息“All ready!”,以发送您的消息以使用函数 send_message。

messenger.send_message("your awesome message!")

进入全屏模式 退出全屏模式

FitMonitor

如上所述,该课程允许您根据培训生成的日志发送报告,因为在第一堂课中您必须提供聊天 ID 来识别您的聊天。要简单地发送训练中生成的所有日志,只需将 FitMonitor 类添加到回调列表中,如下所示。

model.fit(X_train, Y_train,          
          epochs = 10,
          validation_data = (X_test, Y_test), 
          callbacks=[FitMonitor("123456789")])

进入全屏模式 退出全屏模式

要指定要发送的日志,您可以使用 log_keys 参数设置要包含在消息中的日志列表,如代码段所示,该代码段指定只有丢失应包含在消息中。

model.fit(X_train, Y_train,          
          epochs = 10,
          validation_data = (X_test, Y_test), 
          callbacks=[FitMonitor("123456789", log_keys=["loss"])])

进入全屏模式 退出全屏模式

结论

在本文中,您已经了解了一个简单但有用的工具,它可以帮助您通过手机从任何地方监控您的模型,如上所述,这是一个开源计划,并且仍在开发中,所以如果您有任何想法或建议请在评论中删除,感谢阅读。

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐