Minor update.
[pysvrt.git] / README.md
index 9e350b8..a4ea4fd 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,41 +1,65 @@
 # Introduction #
 
-This is the port of the Synthetic Visual Reasoning Test to the pytorch
-framework.
+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.
 
-The main function is
+# Installation and test #
+
+Executing
 
 ```
-torch.ByteTensor svrt.generate_vignettes(int problem_number, torch.LongTensor labels)
+make -j -k
+./test-svrt.py
 ```
 
-where
+should generate an image
+[`example.png`](https://fleuret.org/git-extract/pysvrt/example.png) in
+the current directory.
 
- * `problem_number` indicates which of the 23 problem to use
- * `labels` indicates the boolean labels of the vignettes to generate
+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
+slow as 40 on a 4GHz i7-6700K.
 
-The returned ByteTensor has three dimensions:
+# Vignette generation and compression #
 
- * Vignette index
- * Pixel row
- * Pixel col
+## Vignette sets ##
 
-# Installation and test #
+The file [`svrtset.py`](https://fleuret.org/git-extract/pysvrt/svrtset.py) implements the classes `VignetteSet` and
+`CompressedVignetteSet` both with a constructor
 
-Executing
+```
+__init__(problem_number, nb_samples, batch_size, cuda = False, logger = None)
+```
+
+and a method
 
 ```
-make -j -k
-./test-svrt.py
+(torch.FloatTensor, torch.LongTensor) get_batch(b)
 ```
 
-should generate an image example.png in the current directory.
+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).
 
-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
-slow as 40 on a 4GHz i7-6700K.
+## Low-level functions ##
+
+The main function for generating vignettes is
+
+```
+torch.ByteTensor svrt.generate_vignettes(int problem_number, torch.LongTensor labels)
+```
+
+where
 
-# Vignette compression #
+ * `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
 
@@ -63,14 +87,7 @@ See vignette_set.py for a class CompressedVignetteSet using it.
 # 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.
+[`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.