跳转到主要内容

用于nolearn.lasagne的实用工具

项目描述

# nolearn-utils

[![构建状态](https://travis-ci.org/felixlaumon/nolearn_utils.svg?branch=master)](https://travis-ci.org/felixlaumon/nolearn_utils)

为nolearn.lasagne提供迭代器和处理器,以实现高效的实时图像增强和训练进度监控

## 实时图像增强

- `ShuffleBatchIteratorMixin` 用于打乱训练样本
- `ReadImageBatchIteratorMixin` 将图像文件路径转换为图像,可以是彩色或灰度,并且具有指定的大小
- `RandomFlipBatchIteratorMixin` 随机(均匀)水平或垂直翻转图像
- `AffineTransformBatchIteratorMixin` 对随机选择的图像应用仿射变换(缩放、旋转、平移) - `BufferedBatchIteratorMixin` 在另一个线程中自动执行变换并将结果放入缓冲区(默认大小 = 5)
- `LCNBatchIteratorMixin` 对图像执行局部对比度归一化
- `MeanSubtractBatchIteratorMixin` 从预计算的均值中减去样本

以下是一个使用迭代器的示例

train_iterator_mixins = [
ShuffleBatchIteratorMixin,
ReadImageBatchIteratorMixin,
RandomFlipBatchIteratorMixin,
AffineTransformBatchIteratorMixin,
BufferedBatchIteratorMixin,
]
TrainIterator = make_iterator('TrainIterator', train_iterator_mixins)

train_iterator_kwargs = {
'buffer_size': 5,
'batch_size': batch_size,
'read_image_size': (image_size, image_size),
'read_image_as_gray': False,
'read_image_prefix_path': './data/train/',
'flip_horizontal_p': 0.5,
'flip_vertical_p': 0,
'affine_p': 0.5,
'affine_scale_choices': np.linspace(0.75, 1.25, 5),
'affine_translation_choices': np.arange(-3, 4, 1),
'affine_rotation_choices': np.arange(-45, 50, 5)
}
train_iterator = TrainIterator(**train_iterator_kwargs)

将 `BaseBatchIterator` 从 `nolearn.lasagne` 中修改,为每个迭代提供训练过程的进度条。

## 处理器

- `EarlyStopping` 当损失不再改善时停止训练。
- `StepDecay` 随时间逐渐减少一个参数(例如学习率)。
- `SaveTrainingHistory` 保存训练历史(例如训练损失)。
- `PlotTrainingHistory` 使用 matplotlib 绘制训练损失和验证准确率,在每次迭代后随时间变化。


## 示例

示例代码需要 `scikit-learn`。

### MNIST

`example/mnist/train.py` 应该在50个epoch内产生大约99.5%准确率的模型。

MNIST数据可以从
[Kaggle](https://www.kaggle.com/c/digit-recognizer)下载。

### CIFAR10

CIFAR10图像可以从[Kaggle](https://www.kaggle.com/c/cifar-10/data)下载。以下是将下载的数据放置的位置

examples/cifar10
├── data
│   ├── train
│ | ├── 1.png
│ | ├── 2.png
│ | ├── 3.png
│ | ├── ...
│   └── trainLabels.csv
└── train.py

`example/cifat10/train.py` 应该在100个epoch时产生大约85%准确率的模型。图像从磁盘读取并在训练时增强(来自另一个线程)


## TODO

- [ ] 骄傲地并行化转换


## 许可证

MIT & BSD




项目详情


下载文件

为您的平台下载文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

nolearn_utils-0.3.1.tar.gz (10.4 kB 查看哈希值)

上传时间

构建分布

nolearn_utils-0.3.1-py2.py3-none-any.whl (14.6 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面