from IPython.display import YouTubeVideo YouTubeVideo('S75EdAcXHKk') %%bash mkdir -p ~/Downloads/lisa/data/mnist/ cd ~/Downloads/lisa/data/mnist/ #wget http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz #wget http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz #wget http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz #wget http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz gunzip *.gz !ls ~/Downloads/lisa/data/mnist/ import os,sys,inspect currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) parentdir = os.path.dirname(currentdir) sys.path.insert(0,parentdir) import load load.datasets_dir = os.path.expanduser("~/Downloads/lisa/data/") trX, teX, trY, teY = load.mnist(onehot=True) trX.shape, teX.shape, trY.shape, teY.shape import numpy as np np.min(trX),np.max(trX),np.min(teX),np.max(teX) !sudo pip install theano import os #os.environ['THEANO_FLAGS'] = 'mode=FAST_RUN,device=cpu,floatX=float32' os.environ['THEANO_FLAGS'] = 'mode=FAST_RUN,device=gpu,floatX=float32' from theano import function, config, shared, sandbox import theano.tensor as T import numpy import time vlen = 10 * 30 * 768 # 10 x #cores x # threads per core iters = 1000 rng = numpy.random.RandomState(22) x = shared(numpy.asarray(rng.rand(vlen), config.floatX)) f = function([], T.exp(x)) print f.maker.fgraph.toposort() t0 = time.time() for i in xrange(iters): r = f() t1 = time.time() print 'Looping %d times took' % iters, t1 - t0, 'seconds' print 'Result is', r if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]): print 'Used the cpu' else: print 'Used the gpu'