In [1]:
%load_ext autoreload
%autoreload 2
import cPickle as pickle
import os; import sys; sys.path.append('..')
import gp
import gp.nets as nets
from nolearn.lasagne.visualize import plot_loss
from nolearn.lasagne.visualize import plot_conv_weights
from nolearn.lasagne.visualize import plot_conv_activity
from nolearn.lasagne.visualize import plot_occlusion
from matplotlib.pyplot import imshow
import matplotlib.pyplot as plt
%matplotlib inline
In [3]:
PATCH_PATH = ('cylinder2_rgba_small')
In [4]:
X_train, y_train, X_test, y_test = gp.Patch.load_rgba(PATCH_PATH)
In [22]:
gp.Util.view_rgba(X_train[100], y_train[100])
In [25]:
cnn = nets.RGBANet()
In [26]:
cnn = cnn.fit(X_train, y_train)
In [32]:
cnn = cnn.fit(X_train, y_train)
In [33]:
test_accuracy = cnn.score(X_test, y_test)
In [34]:
test_accuracy
Out[34]:
In [35]:
plot_loss(cnn)
Out[35]:
In [46]:
plot_conv_weights(cnn.layers_['conv2'])
Out[46]:
In [48]:
# store CNN
sys.setrecursionlimit(1000000000)
with open(os.path.expanduser('~/Projects/gp/nets/RGBA.p'), 'wb') as f:
pickle.dump(cnn, f, -1)
In [5]:
with open(os.path.expanduser('~/Projects/gp/nets/RGBA.p'), 'rb') as f:
net = pickle.load(f)
In [7]:
from sklearn.metrics import classification_report, accuracy_score, roc_curve, auc, precision_recall_fscore_support, f1_score, precision_recall_curve, average_precision_score, zero_one_loss
In [8]:
test_prediction = net.predict(X_test)
test_prediction_prob = net.predict_proba(X_test)
print
print 'Precision/Recall:'
print classification_report(y_test, test_prediction)
In [ ]: