容易记录实验数据

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第三方库


热门话题
JavaHTTP。请求侦听器   java Selenium webdriver遍历行并仅检索某些列   JavaSpring批处理在启动运行方法之前启动SimpleZoblancher运行方法   maven如何使用Maven2从javadoc生成java源代码?   java为什么我的Unicodont(Slick2D)不画画?   java取消对未使用对象的引用是否会提高冗长方法的性能?   java可执行Jar的画布比使用Eclipse Runner的小   为什么我的for循环在Android studio中与eclipse(java)产生不同的结果   java代码段字节数组到端口号   java在DynamoDB范围键中插入项   java 安卓。看法WindowManager$BadTokenException:无法添加窗口,您的活动正在运行吗?   java我想要两个列表视图同时滚动   java测试数据分离   java Saxon:每次重新部署后都需要重新启动Glassfish