【Model Log】模型评估指标可视化,自动画Loss、Accuracy曲线图工具,无需人工参与!

1. Model Log 介绍
Model Log 是一款基于 Python3 的轻量级机器学习(Machine Learning)、深度学习(Deep Learning)模型训练评估指标可视化工具,与 TensorFlow、Pytorch、PaddlePaddle结合使用,可以记录模型训练过程当中的超参数、Loss、Accuracy、Precision、F1值等,并以曲线图的形式进行展现对比,轻松三步即可实现。
通过调节超参数的方式多次训练模型,并使用 Model Log 工具进行记录,可以很直观的进行模型对比,堪称调参神器。以下是使用工具后模型训练时 Loss 的变化曲线图。访问线上体验版:http://mantchs.com/model_log.html

通过上图可以很清晰的看出两个模型的训练效果,而且在表格当中高亮显示修改过的超参数,方便进行模型分析。
2. Model Log 特性
- 轻量级、无需任何配置、极简API、开箱即用。
- 只需要把模型的超参数和评估指标数据通过API添加即可,轻松三步即可实现。
- 高亮显示修改过的超参数,方便进行模型分析。
- 自动检测和获取正在训练的模型数据,并进行可视化,无需人工参与。
- 使用 SQLite 轻量级本地数据库存储,可供多个用户同时使用,保证每个用户看到的数据是独立的。
- 可视化组件采用 Echarts 框架,交互式曲线图设计,可清晰看到每个 epoch 周期的指标数据和变化趋势。
3. Model Log 演示地址
访问线上体验版:http://mantchs.com/model_log.html
4. Model Log 安装
Python3 版本以上,通过 pip 进行安装即可。
pip install model-log
注意:若安装的过程中出现以下情况,说明 model-log 命令已经安装到Python下的bin目录中,如果直接输入 model-log 可能会出现 command not found,可以直接到bin目录下执行。

5. Model Log 使用
5.1 启动 web 端
Model Log 安装成功后,Linux、Mac用户直接终端输入以下命令,Windows用户在cmd窗口输入:
model-log
默认启动 5432端口,可以在启动命令上使用参数 -p=5000 指定端口号。若提示命令不存在,可以直接到Python/3.7/bin目录下执行。
启动后可在浏览器输入网址进入:http://127.0.0.1:5432
也可访问线上体验版:http://mantchs.com/model_log.html
web首页是项目列表,一个项目可以有多个模型,这些模型可以在曲线图中直观比较。
web 端会自动检测是否有新模型开始训练,如果有,直接会跳转到相应的 loss 等评价指标页,同时会自动获取指标数据进行呈现。
可供多个用户使用,添加昵称即可,SQLite 轻量级本地数据库存储,保证每个用户看到的数据是独立的。
通过点击曲线图下方的图例,可切换不同模型的评估曲线。

5.2 Model Log API使用
轻松三步即可使用
第一步:先创建 ModelLog 类,并添加必要的属性
from model_log.modellog import ModelLog
"""
:param nick_name: str,昵称,多人使用下可起到数据隔离。
:param project_name: str,项目名称。
:param project_remark: str,项目备注,默认为空。 项目名称如不存在会新建
"""
model_log = ModelLog(nick_name='mantch', project_name='demo实体识别', project_remark='') """
:param model_name: str,模型名称
"""
model_log.add_model_name(model_name='BILSTM_CRF模型') """
:param remark: str,模型备注
"""
model_log.add_model_remark(remark='模型备注') """
:param param_dict: dict,训练参数字典
:param param_type: str,参数类型,例如:TF参数、Word2Vec参数等。
"""
model_log.add_param(param_dict={'lr':0.01}, param_type='tf_param')
第二步:模型训练的每次 epoch (周期)可以添加评估指标数据,评估指标可以进行以下选择。
第一次调用该 API 时,会把以上设置的数据(模型名称、备注等)持久化到 SQLite 数据库,并且 web 端会自动获取评估指标数据进行图形化展示。
"""
:param metric_name: str,评估指标名称,
可选择['train_loss', 'test_loss', 'test_acc', 'test_recall', 'test_precision', 'test_F1'] :param metric_value: float,评估指标数值。
:param epoch: int,训练周期 metric_name 参数只可以选择以上六种
第一次调用该 API 时,会把以上设置的数据(模型名称、备注等)持久化到 SQLite 数据库,并且 web 端会自动获取数据进行图形化展示。
可以在每个 epoch 周期的最后使用该 API 添加训练集和测试集的评估指标,web 端会自动获取该数据。
"""
model_log.add_metric(metric_name='train_loss', metric_value=4.5646, epoch=1)
第三步:模型训练完成后,可以添加最好的一次评估数据。
"""
:param best_name: str,最佳评估指标名称,
:param best_value: float,最佳评估指标数值。
:param best_epoch: int,训练周期 添加当前模型训练中最佳的评估数据,一般放到模型训练的最后进行添加。
"""
model_log.add_best_result(best_name='best_loss', best_value=1.2122, best_epoch=30) """
关闭 SQLite 数据库连接
"""
model_log.close()
5.3 Model Log 使用示例
MIST手写数字识别:https://github.com/NLP-LOVE/Model_Log/blob/master/demo_TF_MIST.py

【Model Log】模型评估指标可视化,自动画Loss、Accuracy曲线图工具,无需人工参与!的更多相关文章
- 【机器学习】--模型评估指标之混淆矩阵,ROC曲线和AUC面积
一.前述 怎么样对训练出来的模型进行评估是有一定指标的,本文就相关指标做一个总结. 二.具体 1.混淆矩阵 混淆矩阵如图: 第一个参数true,false是指预测的正确性. 第二个参数true,p ...
- 召回率、AUC、ROC模型评估指标精要
混淆矩阵 精准率/查准率,presicion 预测为正的样本中实际为正的概率 召回率/查全率,recall 实际为正的样本中被预测为正的概率 TPR F1分数,同时考虑查准率和查全率,二者达到平衡,= ...
- 基于sklearn的metrics库的常用有监督模型评估指标学习
一.分类评估指标 准确率(最直白的指标)缺点:受采样影响极大,比如100个样本中有99个为正例,所以即使模型很无脑地预测全部样本为正例,依然有99%的正确率适用范围:二分类(准确率):二分类.多分类( ...
- Python机器学习笔记:常用评估指标的用法
在机器学习中,性能指标(Metrics)是衡量一个模型好坏的关键,通过衡量模型输出y_predict和y_true之间的某种“距离”得出的. 对学习器的泛化性能进行评估,不仅需要有效可行的试验估计方法 ...
- Spark ML机器学习库评估指标示例
本文主要对 Spark ML库下模型评估指标的讲解,以下代码均以Jupyter Notebook进行讲解,Spark版本为2.4.5.模型评估指标位于包org.apache.spark.ml.eval ...
- ubuntu之路——day10.2单一数字评估指标与满足和优化的评估指标
单一数字评估指标: 我们在平时常用到的模型评估指标是精度(accuracy)和错误率(error rate),错误率是:分类错误的样本数站样本总数的比例,即E=n/m(如果在m个样本中有n个样本分类错 ...
- Scikit-learn:模型评估Model evaluation
http://blog.csdn.net/pipisorry/article/details/52250760 模型评估Model evaluation: quantifying the qualit ...
- 【转载 | 翻译】Visualizing A Neural Machine Translation Model(神经机器翻译模型NMT的可视化)
转载并翻译Jay Alammar的一篇博文:Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models Wi ...
- PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品,产品设计严格遵循国际数据挖掘标准CRISP-DM(跨行业数据挖掘过程标准),具备完备的数据准备、模型构建、模型评估、模型管理、海量数据处理和高纬数据可视化分析能力。
http://www.meritdata.com.cn/article/90 PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品, ...
随机推荐
- meta个人学习纪录
< meta > 元素 元素可提供相关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词. 标签位于文档的头部,不包含任何内容. 标签的属性定义了与 ...
- Nginx 笔记(三)nginx 配置实例 - 反向代理、负载均衡、动静分离
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.反向代理 反向代理准备工作: (1)在 liunx 系统安装 tomcat,使用默认端口 8080 ...
- java实现 历届试题 蓝桥杯 打印十字图
历届试题 打印十字图 题目描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可参见p1.jpg) 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数. 为了能 ...
- Java实现 蓝桥杯 算法提高 合并石子
算法提高 合并石子 时间限制:2.0s 内存限制:256.0MB 问题描述 在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数 ...
- java实现拼出漂亮的表格
/* * 在中文 Windows 环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来. 比如: ┌─┬─┐ │ │ │ ├─┼─┤ │ │ │ └─┴─┘ 其实,它是由如下的符号拼接的: 左上 = ...
- java实现字符串比较
标题:字符串比较 我们需要一个新的字符串比较函数compare(s1, s2). 对这个函数要求是: 1. 它返回一个整数,表示比较的结果. 2. 结果为正值,则前一个串大,为负值,后一个串大,否则, ...
- Python API自动化测试实操
废话不多说,直接上代码截图: 我们首先来看看整个工程的目录结构,这样以便于了解项目的调用关系:config #这里是配置包 -- base_url.py 具体配置了被测系统的url and pat ...
- iOS-Core Foundation框架到Foundation桥接的三种方式
温故知新.勤总结,才能生巧!这次总结一下 :Core Foundation框架到Foundation桥接的三种方式 Foundation提供OC的基础类(像NSObject).基本数据类型等. Cor ...
- 你真的了解EF吗?关于EntityFramework的高级优化
接上一篇文章.现在写程序,做项目不是说功能做完就完事了,在平常的开发过程中对于性能的考虑也是极其重要的. 关于ef的那些事,今天就来说说吧.首先必须得知道.net ef在程序中的五种状态变化过程与原理 ...
- Redis学习笔记(十六) Sentinel(哨兵)(下)
消失了一段时间,我又回来啦.不多说,继续把哨兵看完. 检测主观下线状态 默认情况下,Sentinel会以每秒一次的频率向所有与他创建了命令连接的实例(主从服务器以及其他Sentinel)发送PING命 ...