容易记录实验数据

record-keeper的Python项目详细描述


档案保管员

安装

pip install record-keeper

问题是:

当运行机器学习实验时,记录的数据越多越好。但在日志中添加新的一系列数据通常需要更改培训代码。当你想记录几十个不同系列的数据时,你的代码看起来很糟糕。在

解决方案:

使用RecordKeeper,在编写新类时可以轻松地添加可记录的信息。下面的例子取自pytorch-metric-learning库。在

首先,创建一个包含要记录的属性名称的列表(在下面的示例中是self.record_these)。在

^{pr2}$

然后告诉记录管理员要读取的列表的名称。RecordKeeper将记录并保存列表中描述的所有属性。在

fromtorch.utils.tensorboardimportSummaryWriterimportrecord_keeperasrecord_keeper_packagefrompytorch_metric_learningimportlossesrecord_writer=record_keeper_package.RecordWriter(your_folder_for_logs)tensorboard_writer=SummaryWriter(log_dir=your_tensorboard_folder)record_keeper=record_keeper_package.RecordKeeper(tensorboard_writer,record_writer,["record_these"])your_loss_dictionary={"metric_loss":losses.ContrastiveLoss()}# Then at each iteration of training:record_keeper.update_records(your_loss_dictionary,current_iteration)

现在可以在Tensorboard上查看record_these(特别是num_non_zero_pos_pairs和{})中描述的属性。在

这些数据系列也以sqlite和CSV格式保存。如果您只想使用Tensorboard,那么只传递一个SummaryWriter,反之亦然。在

传递到record_keeper.update_records的字典可以包含任意数量的对象,对于每个对象,RecordKeeper将检查该对象是否具有“record\u these”属性。只要你以编程的方式编写字典,就可以在不阻塞训练代码的情况下添加大量的可记录数据。请参见pytorch-metric-learningpowerful-benchmarker查看RecordKeeper的实际操作。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
gwt java。lang.UnsupportedClassVersionError:不受支持的专业。小版本51.0   java XML解析器trycatch不工作   java Jackson MRBean不工作,无法构造实例   javascript是检查参数的更好方法吗?   java在发生冲突时从ArrayList中删除对象   JavaSpringWebFlux和KeyClope JWTRESTAPI   java Selected选项在微调器中不可见   java在增加分区后,有没有办法在ApacheKafka中保持顺序?   java添加SourceRoot会导致spring启动应用程序出错   java Spring引导:任何bean都没有实现ReactiveCrudepository   java无法注册我的自定义AbstractAnnotationConfigDispatcherServletInitializer   TCP连接上的java Caesar密码   java树集排序不正确   java如何在自定义查询中加载@ElementCollection?