based on Restricted Boltzmann Machine(generative stochastic artificial neural networks) you can read more about RBMs in wikipeia
datasets download links are in code, if you run code without having them, will be downloaded automatically.
this model is based on this conference Paper: researchgate.net also is in my repo
my result after 10 epochs: