Now, the details, and then the results:
-- map MNIST idx format to csv, with tweaked code from here: $ ./process_mnist.py -- map first 100 mnist image-data to images: $ ./mnist-data-to-images.py 100 -- map images to 10*10 image-ngrams sw file: $ ./create-image-sw.py 10 work-on-handwritten-digits/images/mnist-image-*.bmp -- rename sw file to something more specific: $ mv image-ngram-superpositions-10.sw mnist-100--image-ngram-superpositions-10.sw -- average categorize it (in this case with threshold t = 0.8): $ ./the_semantic_db_console.py sa: load mnist-100--image-ngram-superpositions-10.sw sa: average-categorize[layer-0,0.8,phi,layer-1] sa: save mnist-100--save-average-categorize--0_8.sw -- convert these back to images (currently the source sw file is hard-coded into this script): $ ./create-sw-images.py -- tile the results: $ cd work-on-handwritten-digits/ $ mv average-categorize-images mnist-100--average-categorize-images--threshold-0_8 $ ls -1tr mnist-100--average-categorize-images--threshold-0_8/* > image-list.txt $ montage -geometry +2+2 @image-list.txt mnist-100--average-categorize-0_8.jpgwhere montage is part of ImageMagick.
Now the results, starting with the 100 images we used as the training set (which resulted in 32,400 layer-0 superpositions/image-ngrams):
Average categorize with t = 0.8, with a run-time of 1 1/2 days, and resulted in 1,238 image ngrams:
Average categorize with t = 0.7, with a run-time of 6 1/2 hours, and resulted in 205 image ngrams:
Average categorize with t = 0.65, with a run-time of 3 hours 20 minutes, and resulted in 103 image ngrams:
Average categorize with t = 0.6, with a run-time of 1 hours 50 minutes, and resulted in 58 image ngrams:
Average categorize with t = 0.5, with a run-time of 43 minutes, and resulted in 18 image ngrams:
Now we have to see if we can do anything useful with these average-categorize image ngrams. The hope is to map test images to linear combinations of the image-ngrams, which we can represent in superposition form (details later), and then do digit classification on that using similar[op]. Though I'm pretty sure that is not sufficient processing to be successful, but it is a starting point. Eventually I'd like to use several layers of average-categorize, which I'm hoping will be more powerful.
No comments:
Post a Comment