粒子图像和相关工具的点建议网络。

faster-particles的Python项目详细描述


更快的粒子:粒子图像和相关工具的像素建议网络(PPN)

简介

此软件包包括以下内容:

  • ToyData生成器
  • LARCV数据接口(二维和三维)
  • 基本网络:vgg(ish)和uresnet
  • 像素提议网络实现

内容

  1. Installation 1.1条。Dependencies 1.2条。Install
  2. 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 trainedCommand to runPretrained 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,后跟:

NetworkCommandline optionsWeights loading
Base (UResNet)^{}^{}
PPN (w/ UResNet base)^{}^{}
Small UResNet^{}^{}
PPN + UResNet^{}^{}
PPN + Small UResNet^{}^{}

最常见的选项

OptionExplanation
^{}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 -hppn 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

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

推荐PyPI第三方库


热门话题
java Android首选项相同getPreference()值的不同数据   字符串如何在Java中连接两个列表中的单词   安卓 Java Socket编程:检测客户端和服务器是否连接   使用JTextField的java无法将值转换为int   在java中,如何在不通过超级构造函数设置的情况下将消息设置为自定义异常类   用于标识属性值的java正则表达式模式   Android中的java不可见谷歌地图   java正确取消启动ExecutorService的JavaFX任务   在非活动java类中使用安卓的融合位置提供程序,并在主活动类中获取经度和纬度   spring为什么我的大摇大摆不能用springboot在java中工作?   java JSF(2.2)ViewScope在Weblogic 12.2.1.2和JDK 8上使用Spring 4.3.7(在Mac OS和Docker Oracle Linux环境上)   java如何用一个按钮提高计时器速度   java如何检查字符是否是元音?   注册表引用了不存在的Java运行时环境安装或运行时已损坏错误   来自ResultSet java的mysql getDateTime   maven LanguageTool Java API是否具有“无用”依赖关系?   twitter api身份验证的java Trycatch问题   java在Apache Struts 1.1中是否可以显式白名单?   安卓致命异常:主java。lang.RuntimeException:被问及未知片段