# Introduction #
-This is a port of the Synthetic Visual Reasoning Test problems to the
-pytorch framework, with an implementation of two convolutional
-networks to solve them.
+This is a wrapper for [`PyTorch`](http://pytorch.org) for the
+[`Synthetic Visual Reasoning Test,`](https://fleuret.org/git/svrt)
+with an implementation of two convolutional networks to solve them.
# Installation and test #
./test-svrt.py
```
-should generate an image example.png in the current directory.
+should generate an image
+[`example.png`](https://fleuret.org/git-extract/pysvrt/example.png) in
+the current directory.
Note that the image generation does not take advantage of GPUs or
multi-core, and can be as fast as 10,000 vignettes per second and as
## Vignette sets ##
-The svrtset.py implements the classes `VignetteSet` and
-`CompressedVignetteSet` with the following constructor
+The file [`svrtset.py`](https://fleuret.org/git-extract/pysvrt/svrtset.py) implements the classes `VignetteSet` and
+`CompressedVignetteSet` both with a constructor
```
__init__(problem_number, nb_samples, batch_size, cuda = False, logger = None)
```
-and the following method to return one batch
+and a method
```
(torch.FloatTensor, torch.LongTensor) get_batch(b)
```
-as a pair composed of a 4d 'input' Tensor (i.e. single channel 128x128
-images), and a 1d 'target' Tensor (i.e. Boolean labels).
+which returns a pair composed of a 4d 'input' Tensor (i.e. single
+channel 128x128 images), and a 1d 'target' Tensor (i.e. Boolean
+labels).
## Low-level functions ##
-The main function for genering vignettes is
+The main function for generating vignettes is
```
torch.ByteTensor svrt.generate_vignettes(int problem_number, torch.LongTensor labels)
# Testing convolution networks #
-The file `cnn-svrt.py` provides the implementation of two deep
-networks designed by Afroze Baqapuri during an internship at Idiap,
-and allows to train them with several millions vignettes on a PC with
-16Gb and a GPU with 8Gb.
+The file
+[`cnn-svrt.py`](https://fleuret.org/git-extract/pysvrt/cnn-svrt.py)
+provides the implementation of two deep networks designed by Afroze
+Baqapuri during an internship at Idiap, and allows to train them with
+several millions vignettes on a PC with 16Gb and a GPU with 8Gb.