# Introduction #
-This is the port of the Synthetic Visual Reasoning Test to the pytorch
-framework.
-
-The main function is
-
-```
-torch.ByteTensor svrt.generate_vignettes(int problem_number, torch.LongTensor labels)
-```
-
-where
-
- * `problem_number` indicates which of the 23 problem to use
- * `labels` indicates the boolean labels of the vignettes to generate
-
-The returned ByteTensor has three dimensions:
-
- * Vignette index
- * Pixel row
- * Pixel col
+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.
# Installation and test #
multi-core, and can be as fast as 10,000 vignettes per second and as
slow as 40 on a 4GHz i7-6700K.
-# Vignette compression #
+# Vignette generation and compression #
+
+## Vignette sets ##
+
+The svrtset.py implements the classes `VignetteSet` and
+`CompressedVignetteSet` with the following constructor
+
+```
+__init__(problem_number, nb_samples, batch_size, cuda = False, logger = None)
+```
+
+and the following method to return one batch
+
+```
+(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).
+
+## Low-level functions ##
+
+The main function for genering vignettes is
+
+```
+torch.ByteTensor svrt.generate_vignettes(int problem_number, torch.LongTensor labels)
+```
+
+where
+
+ * `problem_number` indicates which of the 23 problem to use
+ * `labels` indicates the boolean labels of the vignettes to generate
+
+The returned ByteTensor has three dimensions:
+
+ * Vignette index
+ * Pixel row
+ * Pixel col
The two additional functions
# Testing convolution networks #
-The file
-
-```
-cnn-svrt.py
-```
-
-provides the implementation of two deep networks, and use the
-compressed vignette code to allow the training with several millions
-vignettes on a PC with 16Gb and a GPU with 8Gb.
-
-The networks were designed by Afroze Baqapuri during an internship at
-Idiap.
+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.