diff --git a/network2.py b/network2.py index 9ecaa5b..09cf373 100644 --- a/network2.py +++ b/network2.py @@ -334,7 +334,8 @@ def load(filename): f = open(filename, "r") data = json.load(f) f.close() - cost = getattr(sys.modules[__name__], data["cost"]) + cost = getattr( + [__name__], data["cost"]) net = Network(data["sizes"], cost=cost) net.weights = [np.array(w) for w in data["weights"]] net.biases = [np.array(b) for b in data["biases"]] diff --git a/test.py b/test.py index d1f4996..c412580 100644 --- a/test.py +++ b/test.py @@ -17,19 +17,19 @@ # ---------------------- # - read the input data: -''' + import mnist_loader training_data, validation_data, test_data = mnist_loader.load_data_wrapper() training_data = list(training_data) -''' + # --------------------- # - network.py example: -#import network +import network + -''' net = network.Network([784, 30, 10]) net.SGD(training_data, 30, 10, 3.0, test_data=test_data) -''' + # ---------------------- # - network2.py example: @@ -124,29 +124,30 @@ """ -def testTheano(): - from theano import function, config, shared, sandbox - import theano.tensor as T - import numpy - import time - print("Testing Theano library...") - 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 range(iters): - r = f() - t1 = time.time() - print("Looping %d times took %f seconds" % (iters, t1 - t0)) - print("Result is %s" % (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') +# def testTheano(): +# from theano import function, config, shared, sandbox +# import theano.tensor as T +# import numpy +# import time +# print("Testing Theano library...") +# 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 range(iters): +# r = f() +# t1 = time.time() +# print("Looping %d times took %f seconds" % (iters, t1 - t0)) +# print("Result is %s" % (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') +# # Perform check: #testTheano() @@ -195,16 +196,16 @@ def testTheano(): ''' # chapter 6 - rectified linear units and some l2 regularization (lmbda=0.1) => even better accuracy -from network3 import ReLU -net = Network([ - ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28), - filter_shape=(20, 1, 5, 5), - poolsize=(2, 2), - activation_fn=ReLU), - ConvPoolLayer(image_shape=(mini_batch_size, 20, 12, 12), - filter_shape=(40, 20, 5, 5), - poolsize=(2, 2), - activation_fn=ReLU), - FullyConnectedLayer(n_in=40*4*4, n_out=100, activation_fn=ReLU), - SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size) -net.SGD(training_data, 60, mini_batch_size, 0.03, validation_data, test_data, lmbda=0.1) +# from network3 import ReLU +# net = Network([ +# ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28), +# filter_shape=(20, 1, 5, 5), +# poolsize=(2, 2), +# activation_fn=ReLU), +# ConvPoolLayer(image_shape=(mini_batch_size, 20, 12, 12), +# filter_shape=(40, 20, 5, 5), +# poolsize=(2, 2), +# activation_fn=ReLU), +# FullyConnectedLayer(n_in=40*4*4, n_out=100, activation_fn=ReLU), +# SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size) +# net.SGD(training_data, 60, mini_batch_size, 0.03, validation_data, test_data, lmbda=0.1)