使用Pythorch设置和训练深网。固执己见和简单。

simplepytorch的Python项目详细描述


配置和训练深度前馈Pythorch模型 细节已经或部分实现。在

免责声明:目前,此回购用于我的研究。 新版本不一定向后兼容。API是 如有更改,恕不另行通知。如果你碰巧在你的 研究或工作,确保要求.txt固定版本 或者引用你使用的具体承诺,这样你就不会遭受不必要的损失 惊喜。在

动机和有用特征:

  • Clarity:许多研究使用Pythorch混合单调的锅炉板 代码(比如argparse配置,标准训练循环代码, 你的工作贡献 方法、模式或培训方式)。从设计上讲,这种回购试图强制 作为一个程序员,您可以更好地将标准PyTorch代码与 你的研究贡献。在
  • Simplicity来自命令行:所有关键参数都应该 在命令行上自动公开。此库转换所有 模型配置类中的公共类变量 命令行参数列表。这使得可重复性和 高度可配置的实验。在
  • reproductability:日志基础设施组织所有结果, 特定实验的日志和模型检查点,由 run_id到一个专用目录中。模型的所有配置 可以在命令行中定义。在
  • 轻松入门:可能会有一个令人眼花缭乱的小数组 训练Pythorch模型时要实现的细节。忘了这些 细节往往会导致错误和实验的缺失或不正确 结果。库(特别是前馈类)提供了一个 简单的配方和要实现的函数列表。在
  • Datasets:PyTorch数据集实现,用于 研究。主要是视网膜眼底图像数据集。你必须下载 然后自己打开数据集。下载链接通常位于 类docstring。在

安装

pip install --upgrade simplepytorch

快速入门

准备工作:获取数据集并建立项目。

^{pr2}$

从命令行训练模型并获得结果

#
# train the model from command-line
#
simplepytorch ./examples/ -h
simplepytorch ./examples/ LetsTrainSomething -h
simplepytorch ./examples/ LetsTrainSomething --run-id experimentA --epochs 3
# alternative command-line ways to start code
run_id=experimentB epochs=3 simplepytorch ./examples/ LetsTrainSomething
simplepytorch ./examples/my_feedforward_model_config.py LetsTrainSomething

# --> debug your model with IPython
simplepytorch_debug ./examples/ LetsTrainSomething --run-id experimentA --epochs a
# --> now you can type %debug to drop into a PDB debugger.  Move around by typing `up` and `down`

# check the results
ls ./data/results/experimentA
tail -f ./data/results/experimentA/perf.csv 
# --> plot results for all experiments matching a regex
simplepytorch_plot 'experiment.*' --ns

通过SimpleByTorch API进行编程访问:

import examples
import simplepytorch.api as api

cfg = api.load_model_config(examples.LetsTrainSomething, '--epochs 1')
cfg.train()

开发自己的Pythorch代码

检查examples目录中的简单入门模板。你呢 可以训练模型以在中的RITE数据集上执行血管分段 大约70行代码。在

examples/

下一步,您可以复制examples目录,将其重命名为 不管你的项目名称是什么,从那里开始。你会发现 在examples/my_feedforward_model_config.py中提到 这个api.前馈类通常列出所需的所有内容。假设 如果您想使用前馈类,只需实现或重写其 方法。如果有不明显或不清楚的地方,创建GitHub问题。我 我会尽我所能支持你。在

数据集:

该库为数据集提供Pythorch数据集实现 没有已经存在的Pythorch实现。在

要使用预定义的数据集类,必须下载数据并 你自己打开。有关用法的详细信息,请参阅数据集类docstring。在

import simplepytorch.datasets as D

dset = D.RITE(use_train_set=True)
dset[0]

例如,我使用的一些下载数据集具有以下结构:

 $ ls data/{arsn_qualdr,eyepacs,messidor,IDRiD_segmentation,RITE}
data/IDRiD_segmentation:
'1. Original Images'  '2. All Segmentation Groundtruths'   CC-BY-4.0.txt   LICENSE.txt

data/RITE:
AV_groundTruth.zip  introduction.txt  read_me.txt  test  training

data/arsn_qualdr:
README.md  annotations  annotations.zip  imgs1  imgs1.zip  imgs2  imgs2.zip

data/eyepacs:
README.md                 test          test.zip.003  test.zip.006  train.zip.001  train.zip.004
sample.zip                test.zip.001  test.zip.004  test.zip.007  train.zip.002  train.zip.005
sampleSubmission.csv.zip  test.zip.002  test.zip.005  train         train.zip.003  trainLabels.csv.zip

data/messidor:
Annotation_Base11.csv  Annotation_Base21.csv  Annotation_Base31.csv  Base11  Base21  Base31
Annotation_Base12.csv  Annotation_Base22.csv  Annotation_Base32.csv  Base12  Base22  Base32
Annotation_Base13.csv  Annotation_Base23.csv  Annotation_Base33.csv  Base13  Base23  Base33
Annotation_Base14.csv  Annotation_Base24.csv  Annotation_Base34.csv  Base14  Base24  Base34

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

推荐PyPI第三方库


热门话题
java不兼容类型:MainActivity无法转换为LifecycleOwner   java安卓是一种更有效的读取大文本文件的方法   java导出LWJGL本地人与项目?(IntelliJ IDEA)   JDK更新后,JavaJShell不再在下一行打印输出   父类对象上的继承Java比较子属性   Java:有没有一个容器可以有效地结合HashMap和ArrayList?   安卓 Java对象指针   java在annotationdriven Spring MVC应用程序中实现大气   java 安卓源代码构建应用找不到安卓supportv4。罐子   文件系统上的抽象层和Java中的jar/zip   java在水平滚动视图中添加多个图像?   java如何从firebase实时数据库中获取字符串数组   WIndows 10工作站上的java未满足链接错误   java命令在终端中工作,但在使用过程中出现“无结束引号”错误。执行官