粒子图像和相关工具的点建议网络。
faster-particles的Python项目详细描述
更快的粒子:粒子图像和相关工具的像素建议网络(PPN)
简介
此软件包包括以下内容:
- ToyData生成器
- LARCV数据接口(二维和三维)
- 基本网络:vgg(ish)和uresnet
- 像素提议网络实现
内容
- Installation 1.1条。Dependencies 1.2条。Install
- Usage 2.1条。Dataset
许可证
此代码是在mit许可下发布的(有关更多详细信息,请参阅许可文件)。
安装
依赖性
必须安装larcv2及其
拥有依赖项(根、opencv、numpy)以便使用larcv数据接口。
安装larcv2
:
git clone https://github.com/DeepLearnPhysics/larcv2.git cd larcv2 source configure.sh make
你还需要Tensorflow。
安装
最简单的方法是使用pip,尽管您不会得到最新的更改:
pip install faster-particles
或者,如果需要最新更新或 参与其开发:
git clone https://github.com/Temigo/faster-particles.git
cd faster-particles
用法
以下假设您安装了pip。如果克隆了源,请使
确保您在根目录中,并将ppn
替换为python faster_particles/bin/ppn.py
。
数据集
toydata
要在以下部分中使用toydata而不是larcv数据,请使用选项--toydata
。
这是一个已经有一段时间没有测试过的旧选项,应该很快就会被弃用。
液态氩数据文件
LARCV数据文件应使用支持正则表达式的--data
选项指定,例如ppn_p[01]*.root
。
有些数据文件在DeepLearnPhysics数据质询页上是公开的。
一般用法是ppn train/demo [directories options] [network architecture] [weights options] [network options] [other options]
。train
用于训练网络,demo
用于运行推理。
目录选项
程序输出分为:
- 输出目录(选项
-o
):具有所有权重 - 日志目录(选项
-l
):存储所有tensorflow日志(并用tensorboard可视化它们) - 显示目录(选项
-d
):存储在训练ppn1和ppn2建议期间拍摄的常规快照,与基本事实进行比较。 目录将被创建,如果它们还不存在。在训练时,所有这些都是必需的。在推断时,只需要显示目录。
网络架构和权重选项
培训
Network trained | Command to run | Pretrained weights (optional) |
---|---|---|
Base network UResNet | `--base-net uresnet --net base | ^{ |
Base network VGG | ^{ | ^{ |
PPN (w/ UResNet base) | ^{ | ^{ |
Small UResNet | ^{ | ^{ |
推断
使用命令ppn demo -d display/dir -m N_inferences
,后跟:
Network | Commandline options | Weights loading |
---|---|---|
Base (UResNet) | ^{ | ^{ |
PPN (w/ UResNet base) | ^{ | ^{ |
Small UResNet | ^{ | ^{ |
PPN + UResNet | ^{ | ^{ |
PPN + Small UResNet | ^{ | ^{ |
最常见的选项
Option | Explanation |
---|---|
^{ | Number of steps / images to run on |
^{ | Freeze base network layers during training. |
^{ | Size of the image |
^{ | 3D version |
^{ | Path to data files, can use wildcards and bash syntax. |
更多选项(如阈值)分别通过ppn train -h
和ppn demo -h
提供。
示例
要在1000步上训练PPN,请使用:
ppn train -o output/dir/ -l log/dir/ -d display/dir --net ppn -m 1000 --data path/to/data
要在轨道/淋浴分类任务中培训基础网络(目前提供VGG和URESNET):
ppn train -o output/dir/ -l log/dir/ -d display/dir --net base --base-net vgg -m 1000
要训练3d数据,请使用参数-3d
,不要忘记使用参数-N
指定图像大小(例如,192表示压缩因子为4,请参阅larcvdata_generator.py
了解更多详细信息)。
在冻结基础(预训练)层的同时,用uresnet基础网络预训练权重训练ppn, 更完整的命令行是
ppn train -o output/dir/ -l log/dir/ -d display/dir --net ppn --base-net uresnet -wb /path/to/uresnet/weights --freeze -N 512 -m 100
以0.5的最低分数对预测分数进行推断:
ppn demo weights_file.ckpt -d display/dir/ -ms 0.5
显示目录将包含结果的快照。
作者
K.Terao、J.W.Park、L.Domine