使用trixi管理您的机器学习实验-模块化、可复制、高级
trixi-slim的Python项目详细描述
最后在你的机器学习实验中加入一些结构。 {STR 1 } $TIXI (培训和回顾性实验基础设施)是帮助您以可重复的方式配置、记录和可视化实验的工具。
贡献
我们永远感激你的贡献,即使是小小的贡献我们是博士生,这只是一个附带项目,所以总有一些需要改进的地方。
最好的方法是在github上创建pull请求。分叉存储库,直接开发或创建一个特性分支,无论您最喜欢哪个。然后转到github上的“pull requests”,选择“new pull request”和“compare across forks”。选择我们的发展作为基础,你的工作作为领导/比较
我们目前不支持完整的Github工作流,因为我们必须将工作存储库镜像到Github,但不用担心,我们可以导出pull请求并应用它们,以便您的贡献仍然显示在Github上:)
功能
^ {STR 1 } $ Traci 由三部分组成:
日志api
以您喜欢的方式将任何数据记录到任何后端。实验基础设施
标准化您的实验,让框架做所有不方便的事情,然后简单地开始,继续, 改变和优化你所有的实验。实验浏览器
比较、合并并目视检查实验结果
给出了实现图here
日志API
日志api为将结果记录到不同的后端提供了一种标准化的方法。 日志api支持 (除其他外):
- 值
- 文本
- 绘图(条形图、折线图、散点图、饼图…)
- 图像(单个,网格)
并提供不同的后端,例如:
- 面容(visdom-loggers)
- tensorboardx(tensorboard-loggers)
- Matplotlib/Seaborn(plt-loggers)
- 本地磁盘(file-loggers)
- 电报松弛(message-loggers)
以及用于记录实验的experiment-logger,它使用文件记录器自动创建结构化目录,并允许 存储配置、结果、绘图、dict、数组、图像等,这样您的实验在磁盘上总是具有相同的结构。
下面是一些示例:
- 文件:
- 电报:
实验基础设施
Experiment Infrastructure提供了配置、运行、存储和评估结果的统一方法。 它为您提供了一个实验界面,您可以为其实现培训、验证和测试。 此外,它还自动为您提供对日志api的简单访问,并存储您的配置以及 结果便于评估和复制有一个抽象的Experiment类和一个具有许多便利特性的PytorchExperiment
有关详细信息,请访问Documentation。
实验浏览器
(我们目前正在从头开始重新制作,希望有重大改进:)
实验浏览器提供了实验的完整概述以及所有配置参数和结果。 它还允许组合和/或比较不同的实验,为您提供一个交互式比较,突出显示配置中的差异和所有图像的详细视图, 图,每个实验的结果和日志,还有现场图等等。
安装
安装^ {STR 1 } $TXIX:
pip install trixi
<>或总是获得最新版本,您可以通过Git直接安装^ {STR 1 } $TIXI >:git clone https://github.com/MIC-DKFZ/trixi.git
cd trixi
pip install -e .
文档站
文档可以在这里找到:trixi.rtfd.io
也可以使用sphinx构建自己的文档。
狮身人面像设置
安装Sphinx(由于Readthedocs出现问题,目前已修复为1.7.0):pip install sphinx==1.7.0
生成HTML:path/to/PROJECT/doc$ make html
index.html将位于:path/to/PROJECT/doc/_build/html/index.html
注释
- Reunun{{CD4}}每次更新现有模块(这将自动调用狮身人面像APIDOC)
- 不要忘记缩进或空行
- 没有类或函数的代码不会使用apidoc自动捕获
示例文档
我们使用谷歌风格的文档字符串:
def show_image(self, image, name, file_format=".png", **kwargs):
"""
This function shows an image.
Args:
image(np.ndarray): image to be shown
name(str): image title
"""
示例
可在此处找到以下示例:
- Visdom-Logger
- Experiment-Logger
- Experiment Infrastructure(带 简单MNIST实验实例及不同超参数的恢复与比较)
- U-Net Example