Skip to content

Instantly share code, notes, and snippets.

@zer0n
Last active December 14, 2015 17:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zer0n/2f87060a054c09999812 to your computer and use it in GitHub Desktop.
Save zer0n/2f87060a054c09999812 to your computer and use it in GitHub Desktop.
import os
os.environ['THEANO_FLAGS'] = 'mode=FAST_RUN,device=gpu,floatX=float32,nvcc.fastmath=True'
import theano
import time
import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.optimizers import SGD
nruns = 50
bsize = 8192
isize = 512
hsize = 2048
osize = 10000
#fake data
X = np.random.rand(bsize, isize).astype(np.float32)
y = np.zeros((bsize, osize), dtype=np.bool)
ind = np.random.randint(0,osize,bsize)
for i in range(bsize):
y[i,ind[i]] = True
#model definition
model = Sequential()
model.add(Dense(hsize, input_dim=isize))
model.add(Activation('sigmoid')) #hidden layer 1
model.add(Dense(hsize))
model.add(Activation('sigmoid')) #hidden layer 2
model.add(Dense(hsize))
model.add(Activation('sigmoid')) #hidden layer 3
model.add(Dense(hsize))
model.add(Activation('sigmoid')) #hidden layer 4
model.add(Dense(osize))
model.add(Activation('softmax')) #output layer
model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.1))
#start training and measuring
start = time.time()
for i in range(nruns):
model.train_on_batch(X, y)
end = time.time()
print('1 GPU: {0} samples per sec'.format(nruns * bsize / (end-start)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment