X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=pysvrt.git;a=blobdiff_plain;f=README.md;h=a4ea4fd956284572b20fdc650a9023021687a13b;hp=4efe67fbc4538875228fdacddbb3ab38c3c9e113;hb=HEAD;hpb=f2da660a51ed51cab4d81df29109e26e0da347bc diff --git a/README.md b/README.md index 4efe67f..a4ea4fd 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,65 @@ # 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. -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 @@ -64,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.