Skip to content

Commit

Permalink
Merge pull request #153 from craffel/example-diagnostics
Browse files Browse the repository at this point in the history
Misc diagnostics/cleanup to examples
  • Loading branch information
benanne committed Mar 4, 2015
2 parents d3349fb + 6d490e7 commit 4a1cfe9
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 37 deletions.
29 changes: 20 additions & 9 deletions examples/mnist.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import lasagne
import theano
import theano.tensor as T
import time

PY2 = sys.version_info[0] == 2

Expand Down Expand Up @@ -182,23 +183,33 @@ def train(iter_funcs, dataset, batch_size=BATCH_SIZE):


def main(num_epochs=NUM_EPOCHS):
print("Loading data...")
dataset = load_data()

print("Building model and compiling functions...")
output_layer = build_model(
input_dim=dataset['input_dim'],
output_dim=dataset['output_dim'],
)
iter_funcs = create_iter_functions(dataset, output_layer)

print("Starting training...")
for epoch in train(iter_funcs, dataset):
print("Epoch %d of %d" % (epoch['number'], num_epochs))
print(" training loss:\t\t%.6f" % epoch['train_loss'])
print(" validation loss:\t\t%.6f" % epoch['valid_loss'])
print(" validation accuracy:\t\t%.2f %%" %
(epoch['valid_accuracy'] * 100))

if epoch['number'] >= num_epochs:
break
now = time.time()
try:
for epoch in train(iter_funcs, dataset):
print("Epoch {} of {} took {:.3f}s".format(
epoch['number'], num_epochs, time.time() - now))
now = time.time()
print(" training loss:\t\t{:.6f}".format(epoch['train_loss']))
print(" validation loss:\t\t{:.6f}".format(epoch['valid_loss']))
print(" validation accuracy:\t\t{:.2f} %%".format(
epoch['valid_accuracy'] * 100))

if epoch['number'] >= num_epochs:
break

except KeyboardInterrupt:
pass

return output_layer

Expand Down
28 changes: 19 additions & 9 deletions examples/mnist_conv.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lasagne
import theano
import theano.tensor as T
import time

from mnist import _load_data
from mnist import create_iter_functions
Expand Down Expand Up @@ -93,8 +94,10 @@ def build_model(input_width, input_height, output_dim,


def main(num_epochs=NUM_EPOCHS):
print("Loading data...")
dataset = load_data()

print("Building model and compiling functions...")
output_layer = build_model(
input_height=dataset['input_height'],
input_width=dataset['input_width'],
Expand All @@ -108,15 +111,22 @@ def main(num_epochs=NUM_EPOCHS):
)

print("Starting training...")
for epoch in train(iter_funcs, dataset):
print("Epoch %d of %d" % (epoch['number'], num_epochs))
print(" training loss:\t\t%.6f" % epoch['train_loss'])
print(" validation loss:\t\t%.6f" % epoch['valid_loss'])
print(" validation accuracy:\t\t%.2f %%" %
(epoch['valid_accuracy'] * 100))

if epoch['number'] >= num_epochs:
break
now = time.time()
try:
for epoch in train(iter_funcs, dataset):
print("Epoch {} of {} took {:.3f}s".format(
epoch['number'], num_epochs, time.time() - now))
now = time.time()
print(" training loss:\t\t{:.6f}".format(epoch['train_loss']))
print(" validation loss:\t\t{:.6f}".format(epoch['valid_loss']))
print(" validation accuracy:\t\t{:.2f} %%".format(
epoch['valid_accuracy'] * 100))

if epoch['number'] >= num_epochs:
break

except KeyboardInterrupt:
pass

return output_layer

Expand Down
29 changes: 19 additions & 10 deletions examples/mnist_conv_cc.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lasagne
import theano
import theano.tensor as T
import time

from lasagne.layers import cuda_convnet

Expand Down Expand Up @@ -111,8 +112,10 @@ def build_model(input_width, input_height, output_dim,


def main(num_epochs=NUM_EPOCHS):
print("Loading data...")
dataset = load_data()

print("Building model and compiling functions...")
output_layer = build_model(
input_height=dataset['input_height'],
input_width=dataset['input_width'],
Expand All @@ -126,16 +129,22 @@ def main(num_epochs=NUM_EPOCHS):
)

print("Starting training...")

for epoch in train(iter_funcs, dataset):
print("Epoch %d of %d" % (epoch['number'], num_epochs))
print(" training loss:\t\t%.6f" % epoch['train_loss'])
print(" validation loss:\t\t%.6f" % epoch['valid_loss'])
print(" validation accuracy:\t\t%.2f %%" %
(epoch['valid_accuracy'] * 100))

if epoch['number'] >= num_epochs:
break
now = time.time()
try:
for epoch in train(iter_funcs, dataset):
print("Epoch {} of {} took {:.3f}s".format(
epoch['number'], num_epochs, time.time() - now))
now = time.time()
print(" training loss:\t\t{:.6f}".format(epoch['train_loss']))
print(" validation loss:\t\t{:.6f}".format(epoch['valid_loss']))
print(" validation accuracy:\t\t{:.2f} %%".format(
epoch['valid_accuracy'] * 100))

if epoch['number'] >= num_epochs:
break

except KeyboardInterrupt:
pass

return output_layer

Expand Down
28 changes: 19 additions & 9 deletions examples/mnist_conv_dnn.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from lasagne.layers import dnn # fails early if not available
import theano
import theano.tensor as T
import time

from mnist import _load_data
from mnist import create_iter_functions
Expand Down Expand Up @@ -87,8 +88,10 @@ def build_model(input_width, input_height, output_dim,


def main(num_epochs=NUM_EPOCHS):
print("Loading data...")
dataset = load_data()

print("Building model and compiling functions...")
output_layer = build_model(
input_height=dataset['input_height'],
input_width=dataset['input_width'],
Expand All @@ -102,15 +105,22 @@ def main(num_epochs=NUM_EPOCHS):
)

print("Starting training...")
for epoch in train(iter_funcs, dataset):
print("Epoch %d of %d" % (epoch['number'], num_epochs))
print(" training loss:\t\t%.6f" % epoch['train_loss'])
print(" validation loss:\t\t%.6f" % epoch['valid_loss'])
print(" validation accuracy:\t\t%.2f %%" %
(epoch['valid_accuracy'] * 100))

if epoch['number'] >= num_epochs:
break
now = time.time()
try:
for epoch in train(iter_funcs, dataset):
print("Epoch {} of {} took {:.3f}s".format(
epoch['number'], num_epochs, time.time() - now))
now = time.time()
print(" training loss:\t\t{:.6f}".format(epoch['train_loss']))
print(" validation loss:\t\t{:.6f}".format(epoch['valid_loss']))
print(" validation accuracy:\t\t{:.2f} %%".format(
epoch['valid_accuracy'] * 100))

if epoch['number'] >= num_epochs:
break

except KeyboardInterrupt:
pass

return output_layer

Expand Down

0 comments on commit 4a1cfe9

Please sign in to comment.