一个小型的CSV导出重量和偏差的微库。
wandb-summarizer的Python项目详细描述
W&B摘要生成器
一个简陋的非官方的microlibrary/命令行工具,用于在Weights and Biases运行范围内汇总数据,包括一个下载(导出)wandb数据作为csv文件的小工具。这与重量和偏差无关。
安装
这个包可以通过pip获得,需要python 3。只需运行以下命令(在虚拟环境中是可选的)。
$ pip install wandb_summarizer
用法
这个包可以通过命令行或从另一个python脚本使用。命令行工具的格式如下:
$ wandb-summarizer-to-csv [username/project name] [output loc] [optional verbose flag] [optional query parameters]
来自另一个python脚本的microlibrary的大多数使用都希望使用wandb_summarizer.download.get_results
,它接受以下参数:
project_name
(str):要下载的项目的名称。格式应为用户名/项目。query_param
(str):The mongo-like selector用于筛选运行。如果没有提供或没有提供,将下载所有运行。默认为无。api
(wandb.api):用于请求运行信息的api对象。如果未提供或未提供,则将使用默认值创建新的API访问对象。默认为无。logger
(logger.logger):用来报告调试信息的记录器。如果没有或没有提供,则不会记录任何消息。默认为无。
示例
通过命令行工具将所有运行从sampottinger/who-wrote-this下载到csv文件:
$ wandb-summarizer-to-csv sampottinger/who-wrote-this who_wrote_this.csv
通过命令行工具将select运行从sampottinger/who-wrote-this下载到csv文件,而无需调试日志:
$ wandb-summarizer-to-csv sampottinger/who-wrote-this who_wrote_this.csv f "{\"config.corpusCol\": \"description\"}"
在另一个python脚本中从sampottinger/who-wrote-this下载运行信息:
import wandb_summarizer.download
run_info = wandb_summarizer.download.get_results('sampottinger/who-wrote-this')
print(run_info[0]['url'])
目的
这个微库在weights和biases项目中的所有或多个运行中构建摘要数据集,报告每次运行结束时的统计数据,而不是这些运行中的随时间(跨时段)的统计数据。这可用于将输入和结果汇总为项目内各个实验的表格数据工件,支持迭代模型优化或模型选择。例如,尝试在神经网络中进行正则化的不同辍学率或l2惩罚的用户可能正在将这些率记录在权重和偏差的配置对象(wandb.config
)中。Wandb在线界面可以在一个表格中显示这些运行,其中包含每个运行的最终结果,但您可能希望通过构建一个条形图来可视化该表格中的信息,该条形图显示不同辍学率下的最终验证/培训集F1分数。由于wandb中没有“export table to csv”选项,因此需要编写一个自定义脚本来通过python下载这些数据。这个microlibrary/命令行工具可以很容易地将这些结果下载到一个用于事后分析的平面表中,从而更容易生成如下结果:
L2 Penalty | Final Validation Accuracy | Final Training Accuracy |
---|---|---|
0.001 | 73% | 87% |
0.01 | 73% | 75% |
0.1 | 56% | 55% |
开发标准
所有顶级方法都应该进行单元测试,并具有Google style guide conformant docstrings。如有可能,请遵守Google Python Style Guide。
测试
通过nosetests
可以使用并运行自动化测试,就像这样:
$ nosetests
.........
----------------------------------------------------------------------
Ran 9 tests in 1.331s
OK
使用的开源库
这将在MIT License下的内部使用wandb client。