confusionflow是一个可视化工具,它可以更细致地监控神经网络的训练过程。

confusionflow的Python项目详细描述


ConfusionFlow Banner

confusionflow是一个以python包的形式发布的可视化工具,它可以更细致地监控神经网络的训练过程。

  • 跟踪和可视化不同时间点(即时间段)和数据集折叠的模型性能,并比较不同的运行(例如,不同的超参数配置)。
  • 我们提供包装器,用于以所需格式导出性能日志。

confusionflow处于早期预览alpha中。期待一些错误和粗糙的边缘。

ConfusionFlow Teaser

演示

尝试使用cifar-10数据集的几个example logs的confusionflow的最新稳定版本:http://confusionflow.caleydoapp.org

其他信息

confusionflow是一种可视化工具,它可以在开发或调整基于神经网络的分类器时为用户提供更多的反馈。性能监视通常仅使用简单的折线图(例如,绘制模型损失和精度),这可能很容易遗漏模型错误结构中的许多细节和更改。

虽然特定模型状态(例如,在某个纪元)的误差可以表示为混淆矩阵,但很难比较多个混淆矩阵或跟踪随时间的变化。 confusionflow可视化了多个模型状态下的模型混淆,并允许用户比较不同的折叠(例如,训练与测试集)或不同的超参数配置。

据我们所知,仍然没有其他具有类似功能的工具。

限制

类数

由于屏幕空间的限制,系统目前被限制在10个类左右。我们知道,我们将无法处理imagenet级别的数据集,但这些数据集不是很常见,因为获取它们通常非常昂贵。很大一部分分类问题的范围大约是10个或更少的类,其中confusionflow可以提供额外的反馈。

运行时开销

记录每一个纪元的多倍性能可能会严重减慢收敛时间(特别是在为完整的列车和测试集创建日志时)。虽然登录minibatch级别可能会提供额外的信息,但它也会进一步严重减慢培训速度。通过持久化模型检查点和在不同计算机上创建性能日志,可以缓解此问题。然而,这也涉及到很多工程工作,在不久的将来confusionflow将不支持它。

安装

confusionflow可以通过pip install confusionflow直接从pypi下载,也可以直接从源代码克隆和安装存储库:

来源

首先确保安装了node(构建ui组件所必需的)。

克隆并安装存储库:

git clone https://github.com/confusionflow/confusionflow
cd confusionflow
python setup.py install

开发

如果要在本地运行开发confusionflow:

python setup.py build_ui develop

开始

作为第一步,您需要先创建一些日志,然后才能开始分析。查看examples文件夹并运行其中一个示例。 每个示例都将创建一个新的子目录logs,其中存储性能日志。

然后您可以通过:

confusionflow --logdir `<path_to_logdir>`

用法示例

tf.keras

火炬

如果使用自己的数据集,则必须首先创建dataset-configuration。我们为examples/dataset-templates中的一些流行数据集提供了一些示例配置,这将帮助您入门。

Docker

你也可以通过docker运行confusionflow。有关详细信息,请参见documentation

日志记录

我们为Tensorflow Keras APIPytorch提供了简单的包装器,用于记录混淆矩阵并以confusionflow所需的格式导出它们。有关详细信息,请参阅logging documentation

日志目录Ry布局

<logdir>
├── datasets                    <--- dataset config files
│   ├── mnist.json
│   └── index.json
├── foldlogdata                 <--- foldlog data
│   ├── example_log_mnist_train_data.json
│   └── example_log_mnist_test_data.json
├── foldlog                     <--- foldlog specifications
│   ├── example_log_mnist_train.json
│   └── example_log_mnist_test.json
├── runs                        <--- run specifications
│   ├── example_log.json
│   └── index.json
└── views                       <--- view specifications (currently unsused)

文档

最新的文档可以在docs.confusionflow.org

api

python包包括一个简单的基于flask的服务器,它实现了当前的api。 当前的api定义可以在tools/swagger/api.yml中找到,并且可以使用Swagger Editor查看。

confusionflow用户界面

confusionflow ui目前在Caleydo/confusionflow-ui开发。

团队

confusionflow是Institute of Computer Graphicsat Johannes Kepler University LinzIBM Visual AI Lab合作的一个研究项目。 confusionflow当前由Peter RuchHolger Stitz维护。

反馈

我们将非常感谢任何feedback通过存储库的问题部分。

参与

  • 你可以在我们的邮件列表上提问。
  • 请通过提交GitHub issue报告错误。

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

推荐PyPI第三方库


热门话题
用户界面java,使用gui连接到另一台计算机/服务器的文件系统   运行sbt的ubuntu返回错误:“javahome需要<path>参数”   java如何在Android中处理许多ImageView而不出现内存问题?   查询中非法字符的java相同URL失败   安卓取消引用可能会产生“java”。lang.NullPointerException'   java中的indexoutofboundsexception“java.lang.ArrayIndexOutOfBoundsException”错误   xml Java将dom保存到文件>文件在程序结束后由另一个进程打开   Java的垃圾收集器是如何工作的?   Java如何筛选值(列表)   java处理字符串我怎样才能像在真实的书籍中一样在上面部分生成“小数字”呢?   java SonarQube是否有一个API来获取所有项目分析的一部分?   java startActivity(intent)什么都不做   JAVAutil。扫描器类Java   java如何从Firebase更新电子邮件?UpdateMail方法已被弃用   java Hibernate。如何正确组织带有注释的onetomany关系?   在java中获得卷标和驱动器号之间的映射(而不是FileSystemView)的解决方法是什么   java查找文件的路径