import numpy as np
import math
import scipy.io as sio
import os
%matplotlib inline
import matplotlib.pylab as pylab
import matplotlib.pyplot as plt
import mpld3
mpld3.enable_notebook()
pylab.rcParams['figure.figsize'] = 12, 8
import sys
sys.path.append('/Users/pi/Downloads/HintonCoursera/Assignment Answers -- Sinclair (Python)')
#os.setcwd('/Users/pi/Downloads/HintonCoursera/Assignment Answers -- Sinclair (Python)')
#courseraneuralnet.bla
from utility.utils import loadmat, logistic
from assignment3 import A3Run
n_hid = 7
NUM_INPUT_UNITS = 256
NUM_CLASSES = 10
a3 = A3Run()
# lets look at our data
print( a3.data_sets.keys() )
v = a3.data_sets['validation']
print( v.keys() )
print( v['targets'].shape )
print( v['inputs'].shape )
w = v['inputs'][:, 33]
print( type(w) )
print( w.shape )
g = w.reshape(16,16)
from matplotlib import pyplot as plt
plt.imshow(g, interpolation='nearest', cmap='viridis')
plt.show()
print( v['targets'][:,33] )
# http://stackoverflow.com/questions/3942549/display-numpy-array-as-continuously-updating-image-with-glumpy
# http://stackoverflow.com/questions/3886281/display-array-as-raster-image-in-python
import glumpy
window = glumpy.Window(512, 512)
im = glumpy.Image(z.astype(np.float32), cmap=glumpy.colormap.Grey)
def on_draw():
im.blit(0, 0, window.width, window.height)
window.mainloop()
#Q1
a3.a3_main(0, n_hid=0, n_iterations=0, lr_net=0, train_momentum=0, early_stopping=False, mini_batch_size=0)
#Q2
a3.a3_main(wd_coeff=0, n_hid=10, n_iterations=70, lr_net=0.005, train_momentum=0.0, early_stopping=False,
mini_batch_size=4)
# Question 3-4
learning_rates = [0.002, 0.01, 0.05, 0.2, 1.0, 5.0, 20.0]
momentums = [0.0, 0.9]
for momentum in momentums:
for learning_rate in learning_rates:
print ("Momentum and learning rate are ({0}, {1})".format(momentum, learning_rate))
a3.a3_main(0, n_hid=10, n_iterations=70, lr_net=learning_rate, train_momentum=momentum,
early_stopping=False, mini_batch_size=4)
print
## Question 5
a3.a3_main(0, n_hid=200, n_iterations=1000, lr_net=0.35, train_momentum=0.9,
early_stopping=False, mini_batch_size=100)
## Question 6
a3.a3_main(0, n_hid=200, n_iterations=1000, lr_net=0.35, train_momentum=0.9,
early_stopping=True, mini_batch_size=100)
## Question 7
for decay in [0, 0.0001, 0.001, 0.01, 1., 5]:
print (decay)
a3.a3_main(decay, n_hid=200, n_iterations=1000, lr_net=0.35, train_momentum=0.9,
early_stopping=False, mini_batch_size=100)
print ()
## Question 8
for size in [10, 30, 100, 130, 170]:
print (size)
a3.a3_main(0, n_hid=size, n_iterations=1000, lr_net=0.35, train_momentum=0.9,
early_stopping=False, mini_batch_size=100)
print
## Question 9/10
for size in [18, 37, 83, 113, 189]:
print (size)
a3.a3_main(0, n_hid=size, n_iterations=1000, lr_net=0.35, train_momentum=0.9,
early_stopping=True, mini_batch_size=100)
print ()
data