summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-12 02:21:02 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-12 02:21:02 +0000
commitbaa99cb87695356632d5c2bd51dfaa627d99e04d (patch)
tree61b9b1d93e2426718aedd7e4f92d7b2bcbbc94d2
parent27052d24c271f39f9ceca78abaf04b4d3087da64 (diff)
automatic import of python-ttach
-rw-r--r--.gitignore1
-rw-r--r--python-ttach.spec457
-rw-r--r--sources1
3 files changed, 459 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..492e4fc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/ttach-0.0.3.tar.gz
diff --git a/python-ttach.spec b/python-ttach.spec
new file mode 100644
index 0000000..e9fe43e
--- /dev/null
+++ b/python-ttach.spec
@@ -0,0 +1,457 @@
+%global _empty_manifest_terminate_build 0
+Name: python-ttach
+Version: 0.0.3
+Release: 1
+Summary: Images test time augmentation with PyTorch.
+License: MIT
+URL: https://github.com/qubvel/ttach
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/91/5d/4c49e0eca4206bc25eff4ba89cee51b781466e2e3aad2f1057fd5d2634be/ttach-0.0.3.tar.gz
+BuildArch: noarch
+
+Requires: python3-pytest
+
+%description
+
+# TTAch
+Image Test Time Augmentation with PyTorch!
+
+Similar to what Data Augmentation is doing to the training set, the purpose of Test Time Augmentation is to perform random modifications to the test images. Thus, instead of showing the regular, “clean” images, only once to the trained model, we will show it the augmented images several times. We will then average the predictions of each corresponding image and take that as our final guess [[1](https://towardsdatascience.com/test-time-augmentation-tta-and-how-to-perform-it-with-keras-4ac19b67fb4d)].
+```
+ Input
+ | # input batch of images
+ / / /|\ \ \ # apply augmentations (flips, rotation, scale, etc.)
+ | | | | | | | # pass augmented batches through model
+ | | | | | | | # reverse transformations for each batch of masks/labels
+ \ \ \ / / / # merge predictions (mean, max, gmean, etc.)
+ | # output batch of masks/labels
+ Output
+```
+## Table of Contents
+1. [Quick Start](#quick-start)
+2. [Transforms](#transforms)
+3. [Aliases](#aliases)
+4. [Merge modes](#merge-modes)
+5. [Installation](#installation)
+
+## Quick start
+
+##### Segmentation model wrapping:
+```python
+import ttach as tta
+tta_model = tta.SegmentationTTAWrapper(model, tta.aliases.d4_transform(), merge_mode='mean')
+```
+##### Classification model wrapping:
+```python
+tta_model = tta.ClassificationTTAWrapper(model, tta.aliases.five_crop_transform())
+```
+
+##### Keypoints model wrapping:
+```python
+tta_model = tta.KeypointsTTAWrapper(model, tta.aliases.flip_transform(), scaled=True)
+```
+**Note**: the model must return keypoints in the format `torch([x1, y1, ..., xn, yn])`
+
+## Advanced Examples
+##### Custom transform:
+```python
+# defined 2 * 2 * 3 * 3 = 36 augmentations !
+transforms = tta.Compose(
+ [
+ tta.HorizontalFlip(),
+ tta.Rotate90(angles=[0, 180]),
+ tta.Scale(scales=[1, 2, 4]),
+ tta.Multiply(factors=[0.9, 1, 1.1]),
+ ]
+)
+
+tta_model = tta.SegmentationTTAWrapper(model, transforms)
+```
+##### Custom model (multi-input / multi-output)
+```python
+# Example how to process ONE batch on images with TTA
+# Here `image`/`mask` are 4D tensors (B, C, H, W), `label` is 2D tensor (B, N)
+
+for transformer in transforms: # custom transforms or e.g. tta.aliases.d4_transform()
+
+ # augment image
+ augmented_image = transformer.augment_image(image)
+
+ # pass to model
+ model_output = model(augmented_image, another_input_data)
+
+ # reverse augmentation for mask and label
+ deaug_mask = transformer.deaugment_mask(model_output['mask'])
+ deaug_label = transformer.deaugment_label(model_output['label'])
+
+ # save results
+ labels.append(deaug_mask)
+ masks.append(deaug_label)
+
+# reduce results as you want, e.g mean/max/min
+label = mean(labels)
+mask = mean(masks)
+```
+
+## Transforms
+
+| Transform | Parameters | Values |
+|----------------|:-------------------------:|:---------------------------------:|
+| HorizontalFlip | - | - |
+| VerticalFlip | - | - |
+| Rotate90 | angles | List\[0, 90, 180, 270] |
+| Scale | scales<br>interpolation | List\[float]<br>"nearest"/"linear"|
+| Resize | sizes<br>original_size<br>interpolation | List\[Tuple\[int, int]]<br>Tuple\[int,int]<br>"nearest"/"linear"|
+| Add | values | List\[float] |
+| Multiply | factors | List\[float] |
+| FiveCrops | crop_height<br>crop_width | int<br>int |
+
+## Aliases
+
+ - flip_transform (horizontal + vertical flips)
+ - hflip_transform (horizontal flip)
+ - d4_transform (flips + rotation 0, 90, 180, 270)
+ - multiscale_transform (scale transform, take scales as input parameter)
+ - five_crop_transform (corner crops + center crop)
+ - ten_crop_transform (five crops + five crops on horizontal flip)
+
+## Merge modes
+ - mean
+ - gmean (geometric mean)
+ - sum
+ - max
+ - min
+ - tsharpen ([temperature sharpen](https://www.kaggle.com/c/severstal-steel-defect-detection/discussion/107716#latest-624046) with t=0.5)
+
+## Installation
+PyPI:
+```bash
+$ pip install ttach
+```
+Source:
+```bash
+$ pip install git+https://github.com/qubvel/ttach
+```
+
+## Run tests
+
+```bash
+docker build -f Dockerfile.dev -t ttach:dev . && docker run --rm ttach:dev pytest -p no:cacheprovider
+```
+
+
+
+
+%package -n python3-ttach
+Summary: Images test time augmentation with PyTorch.
+Provides: python-ttach
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-ttach
+
+# TTAch
+Image Test Time Augmentation with PyTorch!
+
+Similar to what Data Augmentation is doing to the training set, the purpose of Test Time Augmentation is to perform random modifications to the test images. Thus, instead of showing the regular, “clean” images, only once to the trained model, we will show it the augmented images several times. We will then average the predictions of each corresponding image and take that as our final guess [[1](https://towardsdatascience.com/test-time-augmentation-tta-and-how-to-perform-it-with-keras-4ac19b67fb4d)].
+```
+ Input
+ | # input batch of images
+ / / /|\ \ \ # apply augmentations (flips, rotation, scale, etc.)
+ | | | | | | | # pass augmented batches through model
+ | | | | | | | # reverse transformations for each batch of masks/labels
+ \ \ \ / / / # merge predictions (mean, max, gmean, etc.)
+ | # output batch of masks/labels
+ Output
+```
+## Table of Contents
+1. [Quick Start](#quick-start)
+2. [Transforms](#transforms)
+3. [Aliases](#aliases)
+4. [Merge modes](#merge-modes)
+5. [Installation](#installation)
+
+## Quick start
+
+##### Segmentation model wrapping:
+```python
+import ttach as tta
+tta_model = tta.SegmentationTTAWrapper(model, tta.aliases.d4_transform(), merge_mode='mean')
+```
+##### Classification model wrapping:
+```python
+tta_model = tta.ClassificationTTAWrapper(model, tta.aliases.five_crop_transform())
+```
+
+##### Keypoints model wrapping:
+```python
+tta_model = tta.KeypointsTTAWrapper(model, tta.aliases.flip_transform(), scaled=True)
+```
+**Note**: the model must return keypoints in the format `torch([x1, y1, ..., xn, yn])`
+
+## Advanced Examples
+##### Custom transform:
+```python
+# defined 2 * 2 * 3 * 3 = 36 augmentations !
+transforms = tta.Compose(
+ [
+ tta.HorizontalFlip(),
+ tta.Rotate90(angles=[0, 180]),
+ tta.Scale(scales=[1, 2, 4]),
+ tta.Multiply(factors=[0.9, 1, 1.1]),
+ ]
+)
+
+tta_model = tta.SegmentationTTAWrapper(model, transforms)
+```
+##### Custom model (multi-input / multi-output)
+```python
+# Example how to process ONE batch on images with TTA
+# Here `image`/`mask` are 4D tensors (B, C, H, W), `label` is 2D tensor (B, N)
+
+for transformer in transforms: # custom transforms or e.g. tta.aliases.d4_transform()
+
+ # augment image
+ augmented_image = transformer.augment_image(image)
+
+ # pass to model
+ model_output = model(augmented_image, another_input_data)
+
+ # reverse augmentation for mask and label
+ deaug_mask = transformer.deaugment_mask(model_output['mask'])
+ deaug_label = transformer.deaugment_label(model_output['label'])
+
+ # save results
+ labels.append(deaug_mask)
+ masks.append(deaug_label)
+
+# reduce results as you want, e.g mean/max/min
+label = mean(labels)
+mask = mean(masks)
+```
+
+## Transforms
+
+| Transform | Parameters | Values |
+|----------------|:-------------------------:|:---------------------------------:|
+| HorizontalFlip | - | - |
+| VerticalFlip | - | - |
+| Rotate90 | angles | List\[0, 90, 180, 270] |
+| Scale | scales<br>interpolation | List\[float]<br>"nearest"/"linear"|
+| Resize | sizes<br>original_size<br>interpolation | List\[Tuple\[int, int]]<br>Tuple\[int,int]<br>"nearest"/"linear"|
+| Add | values | List\[float] |
+| Multiply | factors | List\[float] |
+| FiveCrops | crop_height<br>crop_width | int<br>int |
+
+## Aliases
+
+ - flip_transform (horizontal + vertical flips)
+ - hflip_transform (horizontal flip)
+ - d4_transform (flips + rotation 0, 90, 180, 270)
+ - multiscale_transform (scale transform, take scales as input parameter)
+ - five_crop_transform (corner crops + center crop)
+ - ten_crop_transform (five crops + five crops on horizontal flip)
+
+## Merge modes
+ - mean
+ - gmean (geometric mean)
+ - sum
+ - max
+ - min
+ - tsharpen ([temperature sharpen](https://www.kaggle.com/c/severstal-steel-defect-detection/discussion/107716#latest-624046) with t=0.5)
+
+## Installation
+PyPI:
+```bash
+$ pip install ttach
+```
+Source:
+```bash
+$ pip install git+https://github.com/qubvel/ttach
+```
+
+## Run tests
+
+```bash
+docker build -f Dockerfile.dev -t ttach:dev . && docker run --rm ttach:dev pytest -p no:cacheprovider
+```
+
+
+
+
+%package help
+Summary: Development documents and examples for ttach
+Provides: python3-ttach-doc
+%description help
+
+# TTAch
+Image Test Time Augmentation with PyTorch!
+
+Similar to what Data Augmentation is doing to the training set, the purpose of Test Time Augmentation is to perform random modifications to the test images. Thus, instead of showing the regular, “clean” images, only once to the trained model, we will show it the augmented images several times. We will then average the predictions of each corresponding image and take that as our final guess [[1](https://towardsdatascience.com/test-time-augmentation-tta-and-how-to-perform-it-with-keras-4ac19b67fb4d)].
+```
+ Input
+ | # input batch of images
+ / / /|\ \ \ # apply augmentations (flips, rotation, scale, etc.)
+ | | | | | | | # pass augmented batches through model
+ | | | | | | | # reverse transformations for each batch of masks/labels
+ \ \ \ / / / # merge predictions (mean, max, gmean, etc.)
+ | # output batch of masks/labels
+ Output
+```
+## Table of Contents
+1. [Quick Start](#quick-start)
+2. [Transforms](#transforms)
+3. [Aliases](#aliases)
+4. [Merge modes](#merge-modes)
+5. [Installation](#installation)
+
+## Quick start
+
+##### Segmentation model wrapping:
+```python
+import ttach as tta
+tta_model = tta.SegmentationTTAWrapper(model, tta.aliases.d4_transform(), merge_mode='mean')
+```
+##### Classification model wrapping:
+```python
+tta_model = tta.ClassificationTTAWrapper(model, tta.aliases.five_crop_transform())
+```
+
+##### Keypoints model wrapping:
+```python
+tta_model = tta.KeypointsTTAWrapper(model, tta.aliases.flip_transform(), scaled=True)
+```
+**Note**: the model must return keypoints in the format `torch([x1, y1, ..., xn, yn])`
+
+## Advanced Examples
+##### Custom transform:
+```python
+# defined 2 * 2 * 3 * 3 = 36 augmentations !
+transforms = tta.Compose(
+ [
+ tta.HorizontalFlip(),
+ tta.Rotate90(angles=[0, 180]),
+ tta.Scale(scales=[1, 2, 4]),
+ tta.Multiply(factors=[0.9, 1, 1.1]),
+ ]
+)
+
+tta_model = tta.SegmentationTTAWrapper(model, transforms)
+```
+##### Custom model (multi-input / multi-output)
+```python
+# Example how to process ONE batch on images with TTA
+# Here `image`/`mask` are 4D tensors (B, C, H, W), `label` is 2D tensor (B, N)
+
+for transformer in transforms: # custom transforms or e.g. tta.aliases.d4_transform()
+
+ # augment image
+ augmented_image = transformer.augment_image(image)
+
+ # pass to model
+ model_output = model(augmented_image, another_input_data)
+
+ # reverse augmentation for mask and label
+ deaug_mask = transformer.deaugment_mask(model_output['mask'])
+ deaug_label = transformer.deaugment_label(model_output['label'])
+
+ # save results
+ labels.append(deaug_mask)
+ masks.append(deaug_label)
+
+# reduce results as you want, e.g mean/max/min
+label = mean(labels)
+mask = mean(masks)
+```
+
+## Transforms
+
+| Transform | Parameters | Values |
+|----------------|:-------------------------:|:---------------------------------:|
+| HorizontalFlip | - | - |
+| VerticalFlip | - | - |
+| Rotate90 | angles | List\[0, 90, 180, 270] |
+| Scale | scales<br>interpolation | List\[float]<br>"nearest"/"linear"|
+| Resize | sizes<br>original_size<br>interpolation | List\[Tuple\[int, int]]<br>Tuple\[int,int]<br>"nearest"/"linear"|
+| Add | values | List\[float] |
+| Multiply | factors | List\[float] |
+| FiveCrops | crop_height<br>crop_width | int<br>int |
+
+## Aliases
+
+ - flip_transform (horizontal + vertical flips)
+ - hflip_transform (horizontal flip)
+ - d4_transform (flips + rotation 0, 90, 180, 270)
+ - multiscale_transform (scale transform, take scales as input parameter)
+ - five_crop_transform (corner crops + center crop)
+ - ten_crop_transform (five crops + five crops on horizontal flip)
+
+## Merge modes
+ - mean
+ - gmean (geometric mean)
+ - sum
+ - max
+ - min
+ - tsharpen ([temperature sharpen](https://www.kaggle.com/c/severstal-steel-defect-detection/discussion/107716#latest-624046) with t=0.5)
+
+## Installation
+PyPI:
+```bash
+$ pip install ttach
+```
+Source:
+```bash
+$ pip install git+https://github.com/qubvel/ttach
+```
+
+## Run tests
+
+```bash
+docker build -f Dockerfile.dev -t ttach:dev . && docker run --rm ttach:dev pytest -p no:cacheprovider
+```
+
+
+
+
+%prep
+%autosetup -n ttach-0.0.3
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-ttach -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.3-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..7501c59
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+4b1cc1a69a01fbd221dfd965e0859026 ttach-0.0.3.tar.gz