Comments (8)
感谢您的提问。metric.log中的数据是用来画图的,传给fitlog.add_best_metric()接口才是用来显示到表格中的。这里是由于(1)有时候比较难判断metric中哪个值是需要优化的(而且有时候是越大越好有时候越小越好),所以fitlog没法(因为我懒)实现自动抓取最好的那次记录;(2)有时候记录的时候可能同时存在多个metric(例如即有dev集也有test集的结果),需要按照dev集选择对应epoch的test集的结果。fitlog.add_best_metric()这个接口永远都只选择最近一次输入给它的结果,一个使用例子是
# 我就只写训练循环这部分的代码了
best_dev_acc = -1
for i in range(1, n_epochs):
for x,y in dataset:
# training loop
dev_acc, test_acc = GetEvaluationResult()
fitlog.add_metric(name='dev', value=dev_acc, step=i*num_step_per_epoch, epoch=i)
fitlog.add_metric(name='test', value=test_acc, step=i*num_step_per_epoch, epoch=i)
if best_dev_acc<dev_acc:
fitlog.add_best_metric(name='dev', value=dev_acc)
fitlog.add_best_metric(name='test', value=test_acc) # 这样前端显示的test acc对应的就是dev最佳时的结果
best_dev_acc = dev_acc
from fitlog.
感谢您的提问。metric.log中的数据是用来画图的,传给fitlog.add_best_metric()接口才是用来显示到表格中的。这里是由于(1)有时候比较难判断metric中哪个值是需要优化的(而且有时候是越大越好有时候越小越好),所以fitlog没法(
因为我懒)实现自动抓取最好的那次记录;(2)有时候记录的时候可能同时存在多个metric(例如即有dev集也有test集的结果),需要按照dev集选择对应epoch的test集的结果。fitlog.add_best_metric()这个接口永远都只选择最近一次输入给它的结果,一个使用例子是# 我就只写训练循环这部分的代码了 best_dev_acc = -1 for i in range(1, n_epochs): for x,y in dataset: # training loop dev_acc, test_acc = GetEvaluationResult() fitlog.add_metric(name='dev', value=dev_acc, step=i*num_step_per_epoch, epoch=i) fitlog.add_metric(name='test', value=test_acc, step=i*num_step_per_epoch, epoch=i) if best_dev_acc<dev_acc: fitlog.add_best_metric(name='dev', value=dev_acc) fitlog.add_best_metric(name='test', value=test_acc) # 这样前端显示的test acc对应的就是dev最佳时的结果 best_dev_acc = dev_acc
感谢回答!我了解为什么表格里没有add_metric记录的数据了,但还有一个问题:如果metric.log中的数据是用来画图的,而且我的metric.log里也有数据,但为什么我点击右上角对比画图选项的时候(我是想实现首页展示的“支持多条log的metric收敛曲线对比”的功能),会出现如下的情况:
- 能选择的指标只有best_map,没有我每一epoch记录的map、topkmap等
from fitlog.
第一个问题算是功能性失误(我没考虑到有时候某些metric可能会不显示到前端这个场景),就是只能选择暴露在table之中的metric;第二个问题,是之前实现的时候的一个bug,我最近似乎是修复了,您尝试通过pip install git+https://github.com/fastnlp/fitlog 安装最新版试一下。
from fitlog.
第一个问题算是功能性失误(我没考虑到有时候某些metric可能会不显示到前端这个场景),就是只能选择暴露在table之中的metric;第二个问题,是之前实现的时候的一个bug,我最近似乎是修复了,您尝试通过pip install git+https://github.com/fastnlp/fitlog 安装最新版试一下。
抱歉前几天服务器网络出了一点问题,没办法安装最新版。刚才安装了最新版本跑一下,但还是会出现上面的第二个问题
from fitlog.
你能把你记录metric和best_metric的代码贴一下吗?因为有可能是由于metric和best_metric名称没对齐,不过我不太确定。或者如果你方便的话,你可以把你的log脱敏后上传三条给我。
from fitlog.
下面的代码和log都是输出一个metric的情况下(因为我之前的回答中,实验是每个epoch会输出三个metric(一开始的图片),后来怀疑是否是这里有问题,我就改成了每个epoch只输出一个metric,不过发现并不能解决问题。
记录metric和best_mteric的代码如下:
best_map = -1
epochs = 11
for epoch in range(epochs):
# train
# test
results = evaluate_fun() # results为dictionary,存储了多个metric,下面只记录了其中一个
fitlog.add_metric(results['map'], name='map', step=epoch, epoch=epoch)
if best_map < results['map']:
fitlog.add_best_metric(results['map'], name='best_map')
best_map = results['map']
log记录如下:
log.zip
from fitlog.
嗯,原因是由于你table里面叫best_map但是曲线里面叫map,对应不上。用下面的(把best_map修改为map)
best_map = -1
epochs = 11
for epoch in range(epochs):
# train
# test
results = evaluate_fun() # results为dictionary,存储了多个metric,下面只记录了其中一个
fitlog.add_metric(results['map'], name='map', step=epoch, epoch=epoch)
if best_map < results['map']:
fitlog.add_best_metric(results['map'], name='map') # 修改成map
best_map = results['map']
from fitlog.
嗯,原因是由于你table里面叫best_map但是曲线里面叫map,对应不上。用下面的(把best_map修改为map)
best_map = -1 epochs = 11 for epoch in range(epochs): # train # test results = evaluate_fun() # results为dictionary,存储了多个metric,下面只记录了其中一个 fitlog.add_metric(results['map'], name='map', step=epoch, epoch=epoch) if best_map < results['map']: fitlog.add_best_metric(results['map'], name='map') # 修改成map best_map = results['map']
的确是这个问题,非常感谢!!现在可以正常画出metric收敛曲线的图了,辛苦了!
from fitlog.
Related Issues (20)
- wsl环境下报错 HOT 1
- 能否选择直接使用.git做管理 HOT 3
- 同时跑两个训练脚本,刷新页面hyper会丢失项目 HOT 2
- 不使用addbestmetric,metric无法使用compare对比功能 HOT 2
- 运行官网的样例代码,但无法显示metric HOT 1
- 在云上跑, 没有git, 无法使用 HOT 1
- 文档中提供的例子无法运行 HOT 2
- Flask app里redirect时应在url前加入完整host HOT 2
- 使用pip安装后, 在命令行使用提示"fitlog:未找到命令" HOT 2
- 请问不可以用多进程的技术问题是哪方面呢? HOT 4
- 云服务器端网页打不开 HOT 2
- 请问支持在网页上操作代码版本回退吗? HOT 2
- 如何查看fitlog下自动commit的代码变动 HOT 1
- RuntimeError: It seems like you are not running under a folder governed by fitlog. HOT 1
- Question about git_id of fitlog. HOT 2
- RuntimeError: It seems like you are not running under a folder governed by fitlog.
- 请教一下fitlog如何使用 HOT 1
- There is problem when add logger add 'nan' HOT 6
- 问题66的提交没有发布到pypi,github actions错误 HOT 2
- NameError: name 'math' is not defined
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fitlog.