def predict(): """ An example of how to load a trained model and use it to predict labels. """ # load the saved model classifier = pickle.load(open(network_pickle)) # compile a predictor function predict_model = theano.function(inputs=[classifier.x], outputs=classifier.layers[-1].y_out) # We can test it on some examples from test test datasets = cl.load_crater_data_phaseII_wrapper(dataset, IMAGE_SIZE) test_set_x, test_set_y = datasets[2] test_set_x = test_set_x.get_value() predicted_values = predict_model(test_set_x[0]) print("Predicted values for the first 10 examples in test set:") print(predicted_values)
def load_data_shared(): global train_size, test_size, valid_size training_data, test_data, validation_data = load_crater_data_phaseII_wrapper( rotate=1) train_size = training_data test_size = test_data valid_size = validation_data def shared(data): """Place the data into shared variables. This allows Theano to copy the data to the GPU, if one is available. """ shared_x = theano.shared(np.asarray(data[0], dtype=theano.config.floatX), borrow=True) shared_y = theano.shared(np.asarray(data[1], dtype=theano.config.floatX), borrow=True) return shared_x, T.cast(shared_y, "int32") return [shared(training_data), shared(validation_data), shared(test_data)]
from network3 import * from plotdatafitting import plotDataFit import crater_loader # uncomment if you do not want graph to show up. IMAGE_SIZE = 28 EPOCHS = 20 MB_SIZE = 1 ETA = .00005 RUNS = 1 LAMBDA_LENGTH = 1 GEN = 3 PICKLE = "Pickle_Stash/GEN2-LReLU28x28-ntwk-e7-val0.9719-tst0.9705.pkl" #training_data, validation_data, test_data = network3.load_data_shared() # PHASE II -- Crater Data training_data, validation_data, test_data = \ crater_loader.load_crater_data_phaseII_wrapper("non_rotated_28x28.pkl", IMAGE_SIZE) if __name__ == "__main__": net = cPickle.load(open(PICKLE, 'rb')) os.system('rm Pickles/*.pkl') net.SGD("GEN%s-LReLU28x28" % GEN, training_data, EPOCHS, MB_SIZE, ETA, validation_data, test_data, lmbda=0.0001)
return epoch def deploy_pickle(netwk): best = netwk.ranker.best_epoch() pickle_it((best.weights, best.biases), PICKLE_DIR) os.system("rm -f *.qr") os.system("touch %s/%s.qr" % (PICKLE_DIR, best.qr)) print "BEST EPOCH: %s" % best # training_data, validation_data, test_data = network3.load_data_shared() # PHASE II --- Crater Data training_data, validation_data, test_data = \ crater_loader.load_crater_data_phaseII_wrapper("phase2-data.pkl", 28) mini_batch_size = 10 def shallow(n=3, epochs=60): nets = [] for j in range(n): print "A shallow net with 100 hidden neurons" net = Network([ FullyConnectedLayer(n_in=784, n_out=100), SoftmaxLayer(n_in=100, n_out=10) ], mini_batch_size) net.SGD(training_data, epochs, mini_batch_size, 0.1, validation_data, test_data) nets.append(net)
predict_model = theano.function(inputs=[classifier.x], outputs=classifier.layers[-1].y_out) # We can test it on some examples from test test datasets = cl.load_crater_data_phaseII_wrapper(dataset, IMAGE_SIZE) test_set_x, test_set_y = datasets[2] test_set_x = test_set_x.get_value() predicted_values = predict_model(test_set_x[0]) print("Predicted values for the first 10 examples in test set:") print(predicted_values) if __name__ == '__main__': classifier = pickle.load(open(network_pickle)) datasets = cl.load_crater_data_phaseII_wrapper(dataset, IMAGE_SIZE) test_set_x, test_set_y = datasets[0] # # test_set_x = test_set_x.get_value() # classifier.test_data = [] # for i in range(100): # print classifier.test_mb_predictions(i) i = T.lscalar() pred = theano.function( [i], classifier.layers[-1].y_out, givens={ classifier.x: test_set_x[i * classifier.mini_batch_size:(i + 1) * classifier.mini_batch_size] })
import crater_loader from plotdatafitting import plotDataFit IMAGE_SIZE = 101 EPOCHS = 1 MB_SIZE = 1 ETA = .005 RUNS = 1 PICKLE = "Pickles/elu-network%sx%s" % (IMAGE_SIZE, IMAGE_SIZE) #training_data, validation_data, test_data = network3.load_data_shared() # PHASE II -- Crater Data training_data, validation_data, test_data = \ crater_loader.load_crater_data_phaseII_wrapper("101x101.pkl", 101) def leakyrelu(): net = None for j in range(RUNS): print "num %s, leaky relu, with regularization %s" % (j, 0.00001) net = Network([ ConvPoolLayer(image_shape=(MB_SIZE, 1, IMAGE_SIZE, IMAGE_SIZE), filter_shape=(5, 1, 15, 15), poolsize=(3, 3), activation_fn=LReLU), ConvPoolLayer(image_shape=(MB_SIZE, 5, 29, 29), filter_shape=(10, 5, 3, 3), poolsize=(2, 2), activation_fn=LReLU),