confusionflow是一个可视化工具,它可以更细致地监控神经网络的训练过程。
confusionflow的Python项目详细描述
confusionflow是一个以python包的形式发布的可视化工具,它可以更细致地监控神经网络的训练过程。
- 跟踪和可视化不同时间点(即时间段)和数据集折叠的模型性能,并比较不同的运行(例如,不同的超参数配置)。
- 我们提供包装器,用于以所需格式导出性能日志。
confusionflow处于早期预览alpha中。期待一些错误和粗糙的边缘。
演示
尝试使用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 API和Pytorch提供了简单的包装器,用于记录混淆矩阵并以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 Linz与IBM Visual AI Lab合作的一个研究项目。 confusionflow当前由Peter Ruch和Holger Stitz维护。
反馈
我们将非常感谢任何feedback通过存储库的问题部分。
参与
- 你可以在我们的邮件列表上提问。
- 请通过提交GitHub issue报告错误。