X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=README.md;h=4efe67fbc4538875228fdacddbb3ab38c3c9e113;hb=f2da660a51ed51cab4d81df29109e26e0da347bc;hp=44e9e1af4cc11610119e7c22d58da49d64181d61;hpb=b39a4f3da90f5af903a4d23e94e9b7823ed7d205;p=pysvrt.git diff --git a/README.md b/README.md index 44e9e1a..4efe67f 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,13 @@ # Introduction # -This is the port of the Synthetic Visual Reasoning Test to the pytorch -framework. +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. The main function is ``` -torch.ByteTensor generate_vignettes(int problem_number, torch.LongTensor labels) +torch.ByteTensor svrt.generate_vignettes(int problem_number, torch.LongTensor labels) ``` where @@ -22,8 +23,55 @@ The returned ByteTensor has three dimensions: # Installation and test # +Executing + ``` make -j -k -./built.py ./test-svrt.py ``` + +should generate an image 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 +slow as 40 on a 4GHz i7-6700K. + +# Vignette compression # + +The two additional functions + +``` +torch.ByteStorage svrt.compress(torch.ByteStorage x) +``` + +and + +``` +torch.ByteStorage svrt.uncompress(torch.ByteStorage x) +``` + +provide a lossless compression scheme adapted to the ByteStorage of +the vignette ByteTensor (i.e. expecting a lot of 255s, a few 0s, and +no other value). + +This compression reduces the memory footprint by a factor ~50, and may +be usefull to deal with very large data-sets and avoid re-generating +images at every batch. It induces a little overhead for decompression, +and moving from CPU to GPU memory. + +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.