Skip to content

Instantly share code, notes, and snippets.

@metrofun
Created February 1, 2017 21:33
Show Gist options
  • Save metrofun/5dc7aa86b6276077158fe1354a7e2b86 to your computer and use it in GitHub Desktop.
Save metrofun/5dc7aa86b6276077158fe1354a7e2b86 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Restricted Boltzmann Machines with MNIST\n",
"\n",
"Bernoulli Restricted Boltzmann Machines trained as a generative model on the MNIST dataset using Contrastive Divergence algorithm.\n",
"\n",
"[1] Geoffrey Hinton. \"A Practical Guide to Training Restricted Boltzmann Machines\""
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from rbm import RBM\n",
"from mxnet import nd\n",
"from sklearn import datasets\n",
"from matplotlib import pyplot\n",
"import numpy"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"VISIBLE_UNITS_NUMBER = 784\n",
"HIDDEN_UNITS_NUMBER = 100\n",
"\n",
"weights = nd.uniform(low=-0.02, high=0.02, shape=(VISIBLE_UNITS_NUMBER, HIDDEN_UNITS_NUMBER))\n",
"visible_bias = nd.zeros((1, VISIBLE_UNITS_NUMBER))\n",
"hidden_bias = nd.zeros((1, HIDDEN_UNITS_NUMBER))\n",
"\n",
"rbm = RBM(weights=weights, visible_bias=visible_bias, hidden_bias=hidden_bias)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"mnist = datasets.fetch_mldata('MNIST original')\n",
"#Normalize and round pixels to 0,1\n",
"DATA = nd.array(numpy.round(mnist.data / 255.))\n",
"rbm.fit(DATA, batch_size=20, gibbs_sampling_steps=5, num_epochs=5, learning_rate=0.05)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"SAMPLE_SIZE = 10\n",
"SAMPLE_START_INDEX = 23456\n",
"SAMPLE = DATA[SAMPLE_START_INDEX:SAMPLE_START_INDEX + SAMPLE_SIZE]\n",
"\n",
"dreamed_visible = rbm.predict(SAMPLE.reshape((SAMPLE_SIZE, 1, VISIBLE_UNITS_NUMBER)))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\nN30wMDAQc+fORVZWFtra2jQtWWUmTpzI2b2HhwdKSkqQlZWlU+MJrK2tMXPmTJ1aDtna2hqhoaHc\nNLtXXnkFQGcbVlRUICsrixtrJAsPDw/MnTu3R0rqgcjUqVOlphcWFxdrNZPjM888w60imJ+fL7P7\nMTAwEBERESgvL9eJzLCBgYGwt7fX+fcDAPDeFdCXMItkxGtDQwMLCwtTOrQ8ffp0VlFRIRU+Gijd\nAZLy+eefa7U7oGso89atW2zs2LG9jug3MDBgFhYWbPfu3Vw7NzU1sS+//FLl+9ZUeM7Y2LjPmbm6\nj/hWd1i3a2Y6VTNbSoqhoSGzsLBgBw4ckPouEhMTeW/7rqV7pkmxWMxlUOPTbhTNDqitrWXPPfec\nXLsRCAQsOjpa5rnNzc3su+++09nuAInddM2QeOLECcYYYx0dHayxsZF9+umnKrW9qpqio6M5m/jg\ngw9k1tm+fTtraGhgHR0dGskM21f9O3fuZJmZmczZ2ZkZGxsrfZ6xsbFURkptdAfw7gD0pXElTkBb\nWxv79ddf2Zo1a5Q6j5yA/jkBDQ0N7MKFC2zJkiUKr+Pu7s4SExNZSUkJ185xcXFs5MiRKt+3pl6I\nQUFBLD09naWnp7OVK1cqdY6mnYDAwECWlpbG0tPT2bZt21TKCSEp/v7+7NSpU6ysrIzTu23bNubn\n58d723ctS5cuZRcvXmQNDQ2MMcauXr3KFi5cyGbPns2r3ShyAsRiMbt69apcu9myZQvLy8uTee4n\nn3zCAgICFI4p0Ea792Y3kmcjPT2dPXr0iDHW+d7dvHkzGzFihEptr6omV1dXNnv2bDZ79mzm5eUl\ns46Xlxd76623WHV1NSsoKGAffvih0tOQNdH2O3fuZFVVVSwzM5PNnTtX6fOCgoJYZmYmq66uZozR\nmIAepKWlwdzcHIsWLcLYsWPx8ssvc1Ntrly5wmVeAv6XScrW1haenp5chjqRSITU1FStL5YhyeDV\n1taG1NRU3Lt3T6nzXF1dERoaitGjR6OmpkbDKmVjYWGBKVOmYMiQIT2OSTIGuru7w8nJCc8//zyE\nQiHu37+P06dPIyUlReFiLHzh7OyMOXPmcNtdMxjev38f33zzDebPny8VopZkFQQ6s9t9/fXXah2r\nYWdnhxkzZsDW1hZCoRDV1dVgjKGgoADff/99r+d3t/n58+fDysqKs/lTp04hLy9PbXplIbGH8vJy\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11de2b278>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for i in range(SAMPLE_SIZE):\n",
" pyplot.subplot(1, SAMPLE_SIZE, i+1)\n",
" pyplot.imshow((SAMPLE[i] * 256).reshape((28, 28)).asnumpy(), cmap='Greys_r')\n",
" pyplot.axis('off')\n",
"\n",
"pyplot.show()\n",
"\n",
"for i in range(SAMPLE_SIZE):\n",
" pyplot.subplot(1, SAMPLE_SIZE, i+1)\n",
" pyplot.imshow(numpy.round((dreamed_visible[i]).reshape((28, 28)).asnumpy()) * 256, cmap='Greys_r')\n",
" pyplot.axis('off')\n",
"\n",
"pyplot.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment