In [2]:
%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


The autoreload extension is already loaded. To reload it, use:
  %reload_ext autoreload

In [3]:
PATCH_PATH = ('cylinder2_rgba_small')

In [4]:
X_train, y_train, X_test, y_test = gp.Patch.load_rgba(PATCH_PATH)


Loaded /home/d/patches//cylinder2_rgba_small/ in 0.000566005706787 seconds.

In [5]:
gp.Util.view_rgba(X_train[100], y_train[100])



In [7]:
cnn = nets.RGBANetPlus()


CNN configuration: 
    Our CNN with image, prob, merged_array and border overlap as RGBA.

    This includes dropout.
    

In [8]:
cnn = cnn.fit(X_train, y_train)


# Neural Network with 171474 learnable parameters

## Layer information

  #  name      size
---  --------  --------
  0  input     4x75x75
  1  conv1     64x73x73
  2  pool1     64x36x36
  3  dropout1  64x36x36
  4  conv2     48x34x34
  5  pool2     48x17x17
  6  dropout2  48x17x17
  7  conv3     48x15x15
  8  pool3     48x7x7
  9  dropout3  48x7x7
 10  conv4     48x5x5
 11  pool4     48x2x2
 12  dropout4  48x2x2
 13  hidden5   512
 14  dropout5  512
 15  output    2

  epoch    train loss    valid loss    train/val    valid acc  dur
-------  ------------  ------------  -----------  -----------  ------
      1       0.46396       0.31323      1.48122      0.87315  27.51s
      2       0.28116       0.25516      1.10193      0.90459  26.38s
      3       0.23199       0.21672      1.07049      0.91938  26.42s
      4       0.21736       0.19727      1.10185      0.92764  26.37s
      5       0.20625       0.19145      1.07729      0.92794  26.63s
      6       0.20049       0.17983      1.11486      0.93309  26.48s
      7       0.19307       0.18020      1.07142      0.93352  26.34s
      8       0.18663       0.17094      1.09178      0.93674  26.54s
      9       0.18074       0.16797      1.07601      0.93854  26.32s
     10       0.17738       0.16302      1.08810      0.93997  26.65s
     11       0.17079       0.15933      1.07190      0.93970  26.87s
     12       0.16659       0.15155      1.09922      0.94380  26.94s
     13       0.16236       0.15016      1.08120      0.94476  27.00s
     14       0.16143       0.14958      1.07924      0.94290  27.01s
     15       0.15620       0.15028      1.03939      0.94416  27.11s
     16       0.15424       0.13842      1.11435      0.94919  27.16s
     17       0.15031       0.13640      1.10194      0.95083  27.10s
     18       0.14824       0.13696      1.08238      0.94764  26.76s
     19       0.14474       0.13327      1.08607      0.95182  26.44s
     20       0.14093       0.12454      1.13161      0.95608  26.75s
     21       0.13745       0.12440      1.10489      0.95721  26.64s
     22       0.13957       0.13246      1.05370      0.95353  26.41s
     23       0.13481       0.12786      1.05433      0.95350  26.36s
     24       0.13137       0.12323      1.06599      0.95595  26.68s
     25       0.12879       0.11473      1.12255      0.95811  26.61s
     26       0.12662       0.11592      1.09229      0.95604  26.41s
     27       0.12597       0.11199      1.12487      0.96074  26.49s
     28       0.12393       0.11511      1.07667      0.95966  26.49s
     29       0.12202       0.10726      1.13763      0.96394  26.47s
     30       0.11996       0.11250      1.06634      0.95954  26.41s
     31       0.11926       0.10426      1.14388      0.96215  26.47s
     32       0.11959       0.10287      1.16254      0.96490  26.66s
     33       0.11385       0.10363      1.09864      0.96472  26.40s
     34       0.11508       0.09946      1.15706      0.96457  26.52s
     35       0.11264       0.09801      1.14933      0.96496  26.78s
     36       0.11324       0.09997      1.13271      0.96523  26.52s
     37       0.10929       0.10371      1.05379      0.96307  26.53s
     38       0.10705       0.08843      1.21058      0.96864  26.51s
     39       0.10456       0.08753      1.19462      0.97142  26.60s
     40       0.10477       0.08260      1.26849      0.97163  26.49s
     41       0.10092       0.08893      1.13483      0.97082  26.29s
     42       0.10447       0.08779      1.18998      0.97118  26.71s
     43       0.10000       0.08519      1.17386      0.97064  26.44s
     44       0.09689       0.09274      1.04467      0.97148  26.29s
     45       0.09681       0.08784      1.10211      0.97163  26.30s
     46       0.09942       0.08171      1.21675      0.97475  26.29s
     47       0.09331       0.07842      1.18992      0.97253  26.31s
     48       0.09591       0.07644      1.25471      0.97549  26.28s
     49       0.09349       0.07944      1.17687      0.97495  26.31s
     50       0.08891       0.07957      1.11736      0.97624  26.31s
     51       0.09256       0.07443      1.24352      0.97573  26.28s
     52       0.08758       0.07789      1.12437      0.97594  26.33s
     53       0.08811       0.07704      1.14368      0.97603  26.28s
     54       0.08462       0.07675      1.10250      0.97666  26.30s
     55       0.08769       0.07503      1.16877      0.97890  26.29s
     56       0.08377       0.07316      1.14491      0.97588  26.30s
     57       0.08259       0.07020      1.17647      0.97857  26.35s
     58       0.08124       0.06977      1.16445      0.97866  26.34s
     59       0.08401       0.06799      1.23570      0.97983  26.31s
     60       0.07829       0.06392      1.22491      0.98277  26.30s
     61       0.08232       0.06532      1.26034      0.98163  26.33s
     62       0.07830       0.06494      1.20583      0.98064  26.34s
     63       0.07829       0.06971      1.12304      0.98076  26.33s
     64       0.07817       0.05916      1.32126      0.98064  26.30s
     65       0.07838       0.05895      1.32967      0.98214  26.27s
     66       0.07292       0.05830      1.25073      0.98522  26.32s
     67       0.07737       0.07235      1.06929      0.97738  26.30s
     68       0.07723       0.05566      1.38758      0.98540  26.31s
     69       0.07216       0.06140      1.17523      0.98396  26.35s
     70       0.07566       0.06992      1.08200      0.97848  26.31s
     71       0.07206       0.05881      1.22526      0.98187  26.31s
     72       0.07201       0.05337      1.34930      0.98375  26.32s
     73       0.06839       0.05230      1.30760      0.98621  26.28s
     74       0.06570       0.05553      1.18314      0.98567  26.30s
     75       0.07405       0.05347      1.38481      0.98459  26.34s
     76       0.06862       0.05588      1.22799      0.98551  26.33s
     77       0.06765       0.05787      1.16907      0.98504  26.31s
     78       0.06869       0.05185      1.32461      0.98594  26.32s
     79       0.06587       0.04930      1.33602      0.98773  26.35s
     80       0.06698       0.05176      1.29399      0.98794  26.31s
     81       0.06597       0.04702      1.40295      0.98755  26.30s
     82       0.06315       0.04732      1.33454      0.98728  26.28s
     83       0.06510       0.04631      1.40566      0.98854  26.32s
     84       0.06219       0.05105      1.21803      0.98552  26.34s
     85       0.06437       0.04627      1.39106      0.98881  26.35s
     86       0.06254       0.04743      1.31846      0.98681  26.33s
     87       0.06302       0.04470      1.40997      0.98785  26.29s
     88       0.06253       0.04871      1.28370      0.98722  26.32s
     89       0.06276       0.04584      1.36909      0.98875  26.35s
     90       0.06089       0.04711      1.29263      0.98737  26.31s
     91       0.05677       0.03941      1.44058      0.98917  26.31s
     92       0.05842       0.04389      1.33119      0.98989  26.32s
     93       0.06032       0.04117      1.46530      0.98809  26.34s
     94       0.05829       0.05155      1.13081      0.98432  26.33s
     95       0.05716       0.04658      1.22717      0.98785  26.36s
     96       0.05601       0.04170      1.34321      0.98881  26.33s
     97       0.05709       0.04193      1.36174      0.98944  26.41s
     98       0.05568       0.04646      1.19845      0.98857  26.34s
     99       0.05730       0.04170      1.37396      0.99025  26.31s
    100       0.05336       0.04759      1.12130      0.98782  26.29s
    101       0.05468       0.04105      1.33206      0.98944  26.32s
    102       0.05375       0.04114      1.30649      0.98746  26.30s
    103       0.05463       0.04457      1.22568      0.98902  26.30s
    104       0.05086       0.04214      1.20678      0.99043  26.32s
    105       0.05372       0.04105      1.30862      0.98971  26.36s
    106       0.05264       0.03898      1.35030      0.99079  26.30s
    107       0.05347       0.04014      1.33219      0.98890  26.29s
    108       0.05313       0.03927      1.35290      0.98917  26.29s
    109       0.05145       0.04787      1.07469      0.98710  26.38s
    110       0.05213       0.04004      1.30189      0.99123  26.33s
    111       0.04976       0.03533      1.40860      0.99213  26.29s
    112       0.05133       0.03750      1.36889      0.99046  26.31s
    113       0.04824       0.03842      1.25544      0.98998  26.31s
    114       0.04835       0.03483      1.38822      0.98998  26.29s
    115       0.04986       0.03573      1.39548      0.99070  26.29s
    116       0.05027       0.03571      1.40789      0.99159  26.33s
    117       0.04824       0.03604      1.33835      0.99159  26.28s
    118       0.04674       0.03487      1.34031      0.99105  26.29s
    119       0.04608       0.03465      1.33006      0.99180  26.30s
    120       0.04606       0.03456      1.33291      0.99222  26.30s
    121       0.04809       0.03694      1.30169      0.99150  26.30s
    122       0.04636       0.03283      1.41228      0.99240  26.31s
    123       0.04550       0.03690      1.23319      0.99231  26.30s
    124       0.05004       0.03521      1.42115      0.99204  26.29s
    125       0.04707       0.03385      1.39071      0.99312  26.29s
    126       0.04572       0.03548      1.28865      0.99132  26.30s
    127       0.04719       0.04356      1.08337      0.98890  26.30s
    128       0.04724       0.03943      1.19805      0.99123  26.37s
    129       0.04835       0.03911      1.23616      0.99052  26.32s
    130       0.04680       0.03225      1.45118      0.99330  26.31s
    131       0.04585       0.03585      1.27881      0.99150  26.30s
    132       0.04544       0.03415      1.33066      0.99249  26.32s
    133       0.04655       0.03477      1.33879      0.99375  26.30s
    134       0.04208       0.03097      1.35847      0.99369  26.38s
    135       0.04138       0.03286      1.25954      0.99267  26.30s
    136       0.04766       0.03291      1.44794      0.99312  26.31s
    137       0.04210       0.03811      1.10454      0.99061  26.34s
    138       0.04484       0.03585      1.25081      0.99195  26.33s
    139       0.04529       0.03321      1.36374      0.99267  26.31s
    140       0.04123       0.03215      1.28251      0.99267  26.30s
    141       0.04441       0.03360      1.32182      0.99276  26.31s
    142       0.04147       0.03182      1.30325      0.99276  26.31s
    143       0.04013       0.03493      1.14900      0.99123  26.36s
    144       0.04500       0.03542      1.27052      0.99258  26.30s
    145       0.04346       0.03929      1.10616      0.99061  26.55s
    146       0.04604       0.03638      1.26563      0.99249  26.46s
    147       0.04440       0.03422      1.29748      0.99195  26.51s
    148       0.04157       0.03348      1.24175      0.99141  26.53s
    149       0.03899       0.03099      1.25826      0.99285  26.57s
    150       0.04042       0.03215      1.25745      0.99330  26.62s
    151       0.04068       0.02940      1.38336      0.99222  26.64s
    152       0.03820       0.03082      1.23925      0.99177  26.60s
    153       0.04044       0.03208      1.26077      0.99348  26.47s
    154       0.04189       0.03222      1.30037      0.99231  26.76s
    155       0.04157       0.03438      1.20910      0.99105  26.32s
    156       0.04059       0.03342      1.21443      0.99222  26.30s
    157       0.03698       0.03034      1.21915      0.99348  26.30s
    158       0.04171       0.02968      1.40546      0.99321  26.29s
    159       0.04232       0.03157      1.34051      0.99231  26.33s
    160       0.04036       0.03285      1.22867      0.99186  26.35s
    161       0.03781       0.03150      1.20015      0.99267  26.31s
    162       0.03797       0.03187      1.19172      0.99150  26.29s
    163       0.04102       0.02993      1.37037      0.99303  26.30s
    164       0.03833       0.02921      1.31222      0.99312  26.29s
    165       0.03909       0.02921      1.33840      0.99294  26.31s
    166       0.03702       0.02782      1.33041      0.99285  26.30s
    167       0.03892       0.03106      1.25302      0.99249  26.31s
    168       0.04091       0.02855      1.43309      0.99357  26.29s
    169       0.03808       0.03228      1.17955      0.99222  26.30s
    170       0.03648       0.03130      1.16551      0.99330  26.29s
    171       0.03741       0.02932      1.27590      0.99270  26.30s
    172       0.04100       0.02762      1.48444      0.99312  26.30s
    173       0.03983       0.03004      1.32586      0.99333  26.29s
    174       0.03712       0.03106      1.19484      0.99429  26.30s
    175       0.03632       0.03107      1.16881      0.99312  26.42s
    176       0.03789       0.03538      1.07096      0.99105  26.27s
    177       0.03572       0.02752      1.29826      0.99285  26.32s
    178       0.03725       0.03069      1.21374      0.99270  26.33s
    179       0.03506       0.03088      1.13525      0.99321  26.29s
    180       0.03709       0.03017      1.22943      0.99339  26.52s
    181       0.03802       0.02792      1.36187      0.99396  26.36s
    182       0.03595       0.02758      1.30352      0.99420  26.31s
    183       0.03693       0.02815      1.31195      0.99420  26.35s
    184       0.03646       0.02674      1.36359      0.99375  26.31s
    185       0.03574       0.03043      1.17447      0.99375  26.48s
    186       0.03695       0.02732      1.35226      0.99402  26.51s
    187       0.03540       0.02544      1.39175      0.99411  26.74s
    188       0.03307       0.02366      1.39743      0.99420  26.43s
    189       0.03388       0.02947      1.14986      0.99360  26.68s
    190       0.03590       0.02766      1.29789      0.99339  26.43s
    191       0.03377       0.02795      1.20817      0.99384  26.49s
    192       0.03218       0.03227      0.99723      0.99312  26.67s
    193       0.03509       0.02968      1.18257      0.99195  26.64s
    194       0.03844       0.02991      1.28519      0.99339  26.32s
    195       0.03512       0.02889      1.21581      0.99267  26.49s
    196       0.03520       0.02772      1.26970      0.99378  26.50s
    197       0.03518       0.03063      1.14835      0.99375  26.51s
    198       0.03439       0.03418      1.00605      0.99276  26.54s
    199       0.03656       0.02930      1.24781      0.99315  26.56s
    200       0.03342       0.03025      1.10489      0.99267  26.46s
    201       0.03431       0.03064      1.11969      0.99303  26.55s
    202       0.03271       0.03359      0.97377      0.99267  26.56s
    203       0.03291       0.03283      1.00237      0.99294  26.56s
    204       0.03145       0.03389      0.92780      0.99366  26.50s
    205       0.03504       0.03060      1.14509      0.99402  26.65s
    206       0.03191       0.02800      1.13972      0.99440  26.66s
    207       0.03391       0.03067      1.10569      0.99276  26.47s
    208       0.02986       0.03119      0.95748      0.99375  26.31s
    209       0.03605       0.02906      1.24035      0.99330  26.53s
    210       0.03290       0.03426      0.96016      0.99339  26.54s
    211       0.03434       0.03105      1.10587      0.99357  26.55s
    212       0.03670       0.02937      1.24930      0.99315  26.60s
    213       0.03349       0.03194      1.04865      0.99369  26.50s
    214       0.03469       0.03249      1.06786      0.99360  26.61s
    215       0.03227       0.03132      1.03024      0.99375  26.42s
    216       0.03249       0.03271      0.99337      0.99378  26.37s
    217       0.03282       0.02746      1.19507      0.99369  26.56s
    218       0.03155       0.02842      1.10988      0.99369  26.82s
    219       0.03384       0.02629      1.28717      0.99396  26.33s
    220       0.03078       0.02914      1.05640      0.99402  26.36s
    221       0.03101       0.02811      1.10338      0.99432  26.34s
    222       0.03438       0.03292      1.04425      0.99330  26.29s
    223       0.03019       0.03262      0.92552      0.99276  26.39s
    224       0.03308       0.02721      1.21565      0.99393  26.33s
    225       0.03051       0.02614      1.16730      0.99420  26.28s
    226       0.03275       0.03107      1.05390      0.99348  26.31s
    227       0.02918       0.02796      1.04361      0.99414  26.30s
    228       0.03250       0.03464      0.93834      0.99258  26.41s
    229       0.03146       0.03096      1.01629      0.99339  26.30s
    230       0.03335       0.03079      1.08310      0.99312  26.27s
    231       0.03154       0.02619      1.20437      0.99432  26.30s
    232       0.03071       0.03089      0.99404      0.99405  26.30s
    233       0.03168       0.03336      0.94948      0.99432  26.29s
    234       0.03150       0.02956      1.06533      0.99402  26.32s
    235       0.02952       0.03742      0.78875      0.99270  26.32s
    236       0.03411       0.03142      1.08560      0.99252  26.29s
    237       0.02956       0.03469      0.85235      0.99369  26.31s
    238       0.03063       0.03021      1.01384      0.99438  26.37s
Early stopping.
Best valid loss was 0.023663 at epoch 188.
Loaded parameters to layer 'conv1' (shape 64x4x3x3).
Loaded parameters to layer 'conv1' (shape 64).
Loaded parameters to layer 'conv2' (shape 48x64x3x3).
Loaded parameters to layer 'conv2' (shape 48).
Loaded parameters to layer 'conv3' (shape 48x48x3x3).
Loaded parameters to layer 'conv3' (shape 48).
Loaded parameters to layer 'conv4' (shape 48x48x3x3).
Loaded parameters to layer 'conv4' (shape 48).
Loaded parameters to layer 'hidden5' (shape 192x512).
Loaded parameters to layer 'hidden5' (shape 512).
Loaded parameters to layer 'output' (shape 512x2).
Loaded parameters to layer 'output' (shape 2).

In [10]:
test_accuracy = cnn.score(X_test, y_test)

In [11]:
test_accuracy


Out[11]:
0.9294150731158605

In [12]:
plot_loss(cnn)


Out[12]:
<module 'matplotlib.pyplot' from '/home/d/nolearn/local/lib/python2.7/site-packages/matplotlib/pyplot.pyc'>

In [16]:
# store CNN
sys.setrecursionlimit(1000000000)
with open(os.path.expanduser('~/Projects/gp/nets/RGBAPlus.p'), 'wb') as f:
  pickle.dump(cnn, f, -1)

In [ ]:


In [ ]: