In [131]:
from __future__ import print_function
import matplotlib.pyplot as plt
import numpy as np
import os
import sys
import zipfile
from IPython.display import display, Image
from scipy import ndimage
from sklearn.linear_model import LogisticRegression
from six.moves.urllib.request import urlretrieve
from six.moves import cPickle as pickle

from skimage import color, io
from scipy.misc import imresize

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D, Activation, GlobalAveragePooling2D
from keras.callbacks import EarlyStopping
from keras.utils import np_utils


np.random.seed(31337)

# Config the matplotlib backend as plotting inline in IPython
%matplotlib inline

In [ ]:
X_train=np.load('catfish-X_train.npy')
Y_train=np.load('catfish-Y_train.npy')
import gc
gc.collect()

Y_train = np_utils.to_categorical(Y_train, 2)

from keras.applications.resnet50 import preprocess_input, decode_predictions
preprocess_input(X_train)

In [149]:
from keras.applications.resnet50 import preprocess_input, decode_predictions
preprocess_input(X_train)


Out[149]:
array([[[[ -78.93900299,  -55.77899933,   27.31999969],
         [ -50.93900299,  -32.77899933,   49.31999969],
         [ -38.93900299,  -28.77899933,   51.31999969],
         ..., 
         [ -95.93900299,  -69.77899933,   51.31999969],
         [ -92.93900299,  -63.77899933,   56.31999969],
         [ -89.93900299,  -57.77899933,   63.31999969]],

        [[ -80.93900299,  -54.77899933,   27.31999969],
         [ -52.93900299,  -32.77899933,   50.31999969],
         [ -39.93900299,  -28.77899933,   51.31999969],
         ..., 
         [ -95.93900299,  -69.77899933,   51.31999969],
         [ -92.93900299,  -63.77899933,   56.31999969],
         [ -90.93900299,  -58.77899933,   62.31999969]],

        [[ -83.93900299,  -53.77899933,   33.31999969],
         [ -56.93900299,  -31.77899933,   53.31999969],
         [ -42.93900299,  -27.77899933,   54.31999969],
         ..., 
         [ -94.93900299,  -69.77899933,   51.31999969],
         [ -92.93900299,  -63.77899933,   56.31999969],
         [ -90.93900299,  -58.77899933,   61.31999969]],

        ..., 
        [[ -18.93900299,   10.22100067,   92.31999969],
         [ -18.93900299,   10.22100067,   92.31999969],
         [ -19.93900299,    9.22100067,   91.31999969],
         ..., 
         [  10.06099701,   42.22100067,  116.31999969],
         [  10.06099701,   42.22100067,  116.31999969],
         [   9.06099701,   41.22100067,  115.31999969]],

        [[ -19.93900299,    9.22100067,   91.31999969],
         [ -20.93900299,    8.22100067,   90.31999969],
         [ -21.93900299,    7.22100067,   89.31999969],
         ..., 
         [  10.06099701,   41.22100067,  117.31999969],
         [  10.06099701,   41.22100067,  117.31999969],
         [   9.06099701,   40.22100067,  116.31999969]],

        [[ -19.93900299,    9.22100067,   91.31999969],
         [ -20.93900299,    8.22100067,   90.31999969],
         [ -21.93900299,    7.22100067,   89.31999969],
         ..., 
         [  10.06099701,   41.22100067,  117.31999969],
         [  10.06099701,   41.22100067,  117.31999969],
         [   9.06099701,   40.22100067,  116.31999969]]],


       [[[  -9.93900299,  -13.77899933,   26.31999969],
         [  35.06099701,   44.22100067,   77.31999969],
         [  20.06099701,   38.22100067,   59.31999969],
         ..., 
         [ -54.93900299,  -54.77899933,   -7.68000031],
         [   6.06099701,   12.22100067,   43.31999969],
         [   1.06099701,   18.22100067,   40.31999969]],

        [[ -24.93900299,  -21.77899933,   14.31999969],
         [  28.06099701,   44.22100067,   72.31999969],
         [   1.06099701,   26.22100067,   45.31999969],
         ..., 
         [ -51.93900299,  -48.77899933,   -2.68000031],
         [  20.06099701,   23.22100067,   53.31999969],
         [  26.06099701,   32.22100067,   53.31999969]],

        [[ -47.93900299,  -33.77899933,   -3.68000031],
         [  10.06099701,   36.22100067,   60.31999969],
         [  -8.93900299,   26.22100067,   40.31999969],
         ..., 
         [ -50.93900299,  -44.77899933,    0.31999969],
         [  32.06099701,   36.22100067,   64.31999969],
         [  37.06099701,   38.22100067,   56.31999969]],

        ..., 
        [[ -58.93900299,  -88.77899933,  -81.68000031],
         [ -59.93900299,  -89.77899933,  -83.68000031],
         [ -60.93900299,  -90.77899933,  -84.68000031],
         ..., 
         [ -77.93900299,  -99.77899933,  -96.68000031],
         [ -78.93900299, -100.77899933,  -97.68000031],
         [ -78.93900299,  -99.77899933,  -98.68000031]],

        [[ -59.93900299,  -89.77899933,  -82.68000031],
         [ -59.93900299,  -89.77899933,  -83.68000031],
         [ -60.93900299,  -90.77899933,  -85.68000031],
         ..., 
         [ -68.93900299,  -90.77899933,  -87.68000031],
         [ -68.93900299,  -90.77899933,  -88.68000031],
         [ -68.93900299,  -89.77899933,  -89.68000031]],

        [[ -59.93900299,  -89.77899933,  -82.68000031],
         [ -60.93900299,  -90.77899933,  -84.68000031],
         [ -61.93900299,  -91.77899933,  -86.68000031],
         ..., 
         [ -69.93900299,  -91.77899933,  -88.68000031],
         [ -69.93900299,  -90.77899933,  -89.68000031],
         [ -69.93900299,  -89.77899933,  -90.68000031]]],


       [[[ 129.06100464,  138.2210083 ,  128.32000732],
         [ 129.06100464,  138.2210083 ,  128.32000732],
         [ 129.06100464,  138.2210083 ,  128.32000732],
         ..., 
         [  31.06099701,  110.22100067,  111.31999969],
         [  41.06099701,   62.22100067,   81.31999969],
         [ -29.93900299,   12.22100067,   31.31999969]],

        [[ 130.06100464,  138.2210083 ,  128.32000732],
         [ 130.06100464,  138.2210083 ,  128.32000732],
         [ 130.06100464,  138.2210083 ,  128.32000732],
         ..., 
         [  77.06099701,  128.2210083 ,  124.31999969],
         [  97.06099701,  104.22100067,  117.31999969],
         [  -9.93900299,   24.22100067,   42.31999969]],

        [[ 130.06100464,  138.2210083 ,  128.32000732],
         [ 130.06100464,  138.2210083 ,  128.32000732],
         [ 130.06100464,  138.2210083 ,  128.32000732],
         ..., 
         [  70.06099701,   99.22100067,   94.31999969],
         [ 117.06099701,  119.22100067,  124.31999969],
         [  61.06099701,   85.22100067,   96.31999969]],

        ..., 
        [[ -69.93900299,  -66.77899933,  -57.68000031],
         [ -65.93900299,  -62.77899933,  -53.68000031],
         [ -63.93900299,  -60.77899933,  -51.68000031],
         ..., 
         [ -48.93900299,    7.22100067,   23.31999969],
         [ -46.93900299,   11.22100067,   25.31999969],
         [ -57.93900299,    1.22100067,   10.31999969]],

        [[ -66.93900299,  -63.77899933,  -54.68000031],
         [ -62.93900299,  -59.77899933,  -50.68000031],
         [ -64.93900299,  -61.77899933,  -52.68000031],
         ..., 
         [ -43.93900299,   11.22100067,   28.31999969],
         [ -24.93900299,   30.22100067,   46.31999969],
         [ -49.93900299,    2.22100067,   17.31999969]],

        [[ -69.93900299,  -66.77899933,  -57.68000031],
         [ -64.93900299,  -61.77899933,  -52.68000031],
         [ -63.93900299,  -60.77899933,  -51.68000031],
         ..., 
         [  -7.93900299,   48.22100067,   64.31999969],
         [ -27.93900299,   25.22100067,   42.31999969],
         [ -36.93900299,    9.22100067,   28.31999969]]],


       ..., 
       [[[ -50.93900299,  -95.77899933, -118.68000031],
         [ -51.93900299,  -95.77899933, -122.68000031],
         [ -48.93900299,  -92.77899933, -123.68000031],
         ..., 
         [ -14.93900299,  -68.77899933,  -97.68000031],
         [ -18.93900299,  -65.77899933,  -95.68000031],
         [ -21.93900299,  -65.77899933,  -96.68000031]],

        [[ -47.93900299,  -92.77899933, -116.68000031],
         [ -47.93900299,  -92.77899933, -119.68000031],
         [ -44.93900299,  -90.77899933, -121.68000031],
         ..., 
         [ -12.93900299,  -66.77899933,  -96.68000031],
         [ -17.93900299,  -62.77899933,  -95.68000031],
         [ -20.93900299,  -63.77899933,  -97.68000031]],

        [[ -40.93900299,  -88.77899933, -112.68000031],
         [ -39.93900299,  -87.77899933, -114.68000031],
         [ -37.93900299,  -86.77899933, -117.68000031],
         ..., 
         [ -11.93900299,  -64.77899933,  -98.68000031],
         [ -14.93900299,  -60.77899933,  -97.68000031],
         [ -17.93900299,  -62.77899933,  -99.68000031]],

        ..., 
        [[  37.06099701,   18.22100067,   12.31999969],
         [  38.06099701,   19.22100067,   13.31999969],
         [  35.06099701,   17.22100067,   11.31999969],
         ..., 
         [  24.06099701,    0.22100067,    3.31999969],
         [  24.06099701,    0.22100067,    3.31999969],
         [  24.06099701,    0.22100067,    3.31999969]],

        [[  34.06099701,   15.22100067,    9.31999969],
         [  32.06099701,   13.22100067,    7.31999969],
         [  34.06099701,   16.22100067,   10.31999969],
         ..., 
         [  24.06099701,    0.22100067,    3.31999969],
         [  24.06099701,    0.22100067,    3.31999969],
         [  24.06099701,    0.22100067,    3.31999969]],

        [[  32.06099701,   13.22100067,    7.31999969],
         [  30.06099701,   11.22100067,    5.31999969],
         [  32.06099701,   14.22100067,    8.31999969],
         ..., 
         [  24.06099701,    0.22100067,    3.31999969],
         [  24.06099701,    0.22100067,    3.31999969],
         [  24.06099701,    0.22100067,    3.31999969]]],


       [[[ -94.93900299, -104.77899933, -113.68000031],
         [ -94.93900299, -104.77899933, -113.68000031],
         [ -94.93900299, -104.77899933, -113.68000031],
         ..., 
         [ -47.93900299,  -62.77899933,  -79.68000031],
         [ -47.93900299,  -62.77899933,  -79.68000031],
         [ -47.93900299,  -62.77899933,  -79.68000031]],

        [[ -94.93900299, -104.77899933, -113.68000031],
         [ -94.93900299, -104.77899933, -113.68000031],
         [ -94.93900299, -104.77899933, -113.68000031],
         ..., 
         [ -47.93900299,  -62.77899933,  -79.68000031],
         [ -47.93900299,  -62.77899933,  -79.68000031],
         [ -47.93900299,  -62.77899933,  -79.68000031]],

        [[ -94.93900299, -104.77899933, -113.68000031],
         [ -94.93900299, -104.77899933, -113.68000031],
         [ -94.93900299, -104.77899933, -113.68000031],
         ..., 
         [ -47.93900299,  -62.77899933,  -79.68000031],
         [ -47.93900299,  -62.77899933,  -79.68000031],
         [ -47.93900299,  -62.77899933,  -79.68000031]],

        ..., 
        [[  38.06099701,   41.22100067,   40.31999969],
         [  38.06099701,   41.22100067,   40.31999969],
         [  40.06099701,   43.22100067,   42.31999969],
         ..., 
         [  30.06099701,   28.22100067,   25.31999969],
         [  25.06099701,   23.22100067,   20.31999969],
         [  33.06099701,   31.22100067,   28.31999969]],

        [[  46.06099701,   46.22100067,   45.31999969],
         [  47.06099701,   47.22100067,   46.31999969],
         [  48.06099701,   48.22100067,   47.31999969],
         ..., 
         [  30.06099701,   26.22100067,   22.31999969],
         [  35.06099701,   31.22100067,   28.31999969],
         [  31.06099701,   27.22100067,   25.31999969]],

        [[  54.06099701,   53.22100067,   52.31999969],
         [  53.06099701,   52.22100067,   51.31999969],
         [  54.06099701,   53.22100067,   52.31999969],
         ..., 
         [  34.06099701,   30.22100067,   26.31999969],
         [  35.06099701,   30.22100067,   27.31999969],
         [  27.06099701,   23.22100067,   21.31999969]]],


       [[[ 128.06100464,  113.22100067,   96.31999969],
         [ 143.06100464,  130.2210083 ,  114.31999969],
         [ 133.06100464,  123.22100067,  105.31999969],
         ..., 
         [ 128.06100464,  119.22100067,  109.31999969],
         [ 131.06100464,  124.22100067,  112.31999969],
         [ 131.06100464,  124.22100067,  112.31999969]],

        [[ 143.06100464,  128.2210083 ,  111.31999969],
         [ 127.06099701,  114.22100067,   97.31999969],
         [ 141.06100464,  128.2210083 ,  113.31999969],
         ..., 
         [ 138.06100464,  130.2210083 ,  119.31999969],
         [ 130.06100464,  123.22100067,  111.31999969],
         [ 131.06100464,  124.22100067,  112.31999969]],

        [[ 141.06100464,  126.22100067,  111.31999969],
         [ 135.06100464,  121.22100067,  106.31999969],
         [ 125.06099701,  115.22100067,   99.31999969],
         ..., 
         [ 123.06099701,  114.22100067,  104.31999969],
         [ 132.06100464,  125.22100067,  113.31999969],
         [ 131.06100464,  124.22100067,  112.31999969]],

        ..., 
        [[ 139.06100464,  128.2210083 ,  107.31999969],
         [ 134.06100464,  121.22100067,  104.31999969],
         [ 136.06100464,  127.22100067,  111.31999969],
         ..., 
         [ 129.06100464,  120.22100067,  110.31999969],
         [ 131.06100464,  124.22100067,  112.31999969],
         [ 131.06100464,  124.22100067,  112.31999969]],

        [[ 131.06100464,  124.22100067,  112.31999969],
         [ 131.06100464,  124.22100067,  112.31999969],
         [ 131.06100464,  124.22100067,  112.31999969],
         ..., 
         [ 131.06100464,  124.22100067,  112.31999969],
         [ 131.06100464,  124.22100067,  112.31999969],
         [ 131.06100464,  124.22100067,  112.31999969]],

        [[ 131.06100464,  124.22100067,  112.31999969],
         [ 131.06100464,  124.22100067,  112.31999969],
         [ 131.06100464,  124.22100067,  112.31999969],
         ..., 
         [ 131.06100464,  124.22100067,  112.31999969],
         [ 131.06100464,  124.22100067,  112.31999969],
         [ 131.06100464,  124.22100067,  112.31999969]]]], dtype=float32)

In [151]:
import sys
sys.path.append("keras-squeezenet")

from squeezenet import get_squeezenet

squeezenet_model = get_squeezenet(1000, dim_ordering='tf')
squeezenet_model.compile(loss="categorical_crossentropy", optimizer="adam")
squeezenet_model.load_weights('keras-squeezenet/model/squeezenet_weights_tf_dim_ordering_tf_kernels.h5', by_name=True)

# from keras.layers import Input, Dense
# from keras.models import Model

# # Add final layer with 1 class
# layer = Dense(2, activation='softmax')(squeezenet_model.output)
# model = Model(input=squeezenet_model.inputs, output=layer)

# model.compile(loss='categorical_crossentropy', optimizer='adam')


# squeezenet_model.summary()

# early_stop = EarlyStopping(monitor='val_loss', patience=5, verbose=1)

In [170]:
l=squeezenet_model.layers
l=l[63]
print(l.input_shape)
squeezenet_model.summary()


(None, 13, 13, 512)
____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
input_6 (InputLayer)             (None, 227, 227, 3)   0                                            
____________________________________________________________________________________________________
conv1 (Convolution2D)            (None, 113, 113, 64)  1792        input_6[0][0]                    
____________________________________________________________________________________________________
relu_conv1 (Activation)          (None, 113, 113, 64)  0           conv1[0][0]                      
____________________________________________________________________________________________________
pool1 (MaxPooling2D)             (None, 56, 56, 64)    0           relu_conv1[0][0]                 
____________________________________________________________________________________________________
fire2/squeeze1x1 (Convolution2D) (None, 56, 56, 16)    1040        pool1[0][0]                      
____________________________________________________________________________________________________
fire2/relu_squeeze1x1 (Activatio (None, 56, 56, 16)    0           fire2/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire2/expand1x1 (Convolution2D)  (None, 56, 56, 64)    1088        fire2/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire2/expand3x3 (Convolution2D)  (None, 56, 56, 64)    9280        fire2/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire2/relu_expand1x1 (Activation (None, 56, 56, 64)    0           fire2/expand1x1[0][0]            
____________________________________________________________________________________________________
fire2/relu_expand3x3 (Activation (None, 56, 56, 64)    0           fire2/expand3x3[0][0]            
____________________________________________________________________________________________________
fire2/concat (Merge)             (None, 56, 56, 128)   0           fire2/relu_expand1x1[0][0]       
                                                                   fire2/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire3/squeeze1x1 (Convolution2D) (None, 56, 56, 16)    2064        fire2/concat[0][0]               
____________________________________________________________________________________________________
fire3/relu_squeeze1x1 (Activatio (None, 56, 56, 16)    0           fire3/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire3/expand1x1 (Convolution2D)  (None, 56, 56, 64)    1088        fire3/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire3/expand3x3 (Convolution2D)  (None, 56, 56, 64)    9280        fire3/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire3/relu_expand1x1 (Activation (None, 56, 56, 64)    0           fire3/expand1x1[0][0]            
____________________________________________________________________________________________________
fire3/relu_expand3x3 (Activation (None, 56, 56, 64)    0           fire3/expand3x3[0][0]            
____________________________________________________________________________________________________
fire3/concat (Merge)             (None, 56, 56, 128)   0           fire3/relu_expand1x1[0][0]       
                                                                   fire3/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
pool3 (MaxPooling2D)             (None, 27, 27, 128)   0           fire3/concat[0][0]               
____________________________________________________________________________________________________
fire4/squeeze1x1 (Convolution2D) (None, 27, 27, 32)    4128        pool3[0][0]                      
____________________________________________________________________________________________________
fire4/relu_squeeze1x1 (Activatio (None, 27, 27, 32)    0           fire4/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire4/expand1x1 (Convolution2D)  (None, 27, 27, 128)   4224        fire4/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire4/expand3x3 (Convolution2D)  (None, 27, 27, 128)   36992       fire4/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire4/relu_expand1x1 (Activation (None, 27, 27, 128)   0           fire4/expand1x1[0][0]            
____________________________________________________________________________________________________
fire4/relu_expand3x3 (Activation (None, 27, 27, 128)   0           fire4/expand3x3[0][0]            
____________________________________________________________________________________________________
fire4/concat (Merge)             (None, 27, 27, 256)   0           fire4/relu_expand1x1[0][0]       
                                                                   fire4/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire5/squeeze1x1 (Convolution2D) (None, 27, 27, 32)    8224        fire4/concat[0][0]               
____________________________________________________________________________________________________
fire5/relu_squeeze1x1 (Activatio (None, 27, 27, 32)    0           fire5/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire5/expand1x1 (Convolution2D)  (None, 27, 27, 128)   4224        fire5/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire5/expand3x3 (Convolution2D)  (None, 27, 27, 128)   36992       fire5/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire5/relu_expand1x1 (Activation (None, 27, 27, 128)   0           fire5/expand1x1[0][0]            
____________________________________________________________________________________________________
fire5/relu_expand3x3 (Activation (None, 27, 27, 128)   0           fire5/expand3x3[0][0]            
____________________________________________________________________________________________________
fire5/concat (Merge)             (None, 27, 27, 256)   0           fire5/relu_expand1x1[0][0]       
                                                                   fire5/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
pool5 (MaxPooling2D)             (None, 13, 13, 256)   0           fire5/concat[0][0]               
____________________________________________________________________________________________________
fire6/squeeze1x1 (Convolution2D) (None, 13, 13, 48)    12336       pool5[0][0]                      
____________________________________________________________________________________________________
fire6/relu_squeeze1x1 (Activatio (None, 13, 13, 48)    0           fire6/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire6/expand1x1 (Convolution2D)  (None, 13, 13, 192)   9408        fire6/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire6/expand3x3 (Convolution2D)  (None, 13, 13, 192)   83136       fire6/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire6/relu_expand1x1 (Activation (None, 13, 13, 192)   0           fire6/expand1x1[0][0]            
____________________________________________________________________________________________________
fire6/relu_expand3x3 (Activation (None, 13, 13, 192)   0           fire6/expand3x3[0][0]            
____________________________________________________________________________________________________
fire6/concat (Merge)             (None, 13, 13, 384)   0           fire6/relu_expand1x1[0][0]       
                                                                   fire6/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire7/squeeze1x1 (Convolution2D) (None, 13, 13, 48)    18480       fire6/concat[0][0]               
____________________________________________________________________________________________________
fire7/relu_squeeze1x1 (Activatio (None, 13, 13, 48)    0           fire7/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire7/expand1x1 (Convolution2D)  (None, 13, 13, 192)   9408        fire7/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire7/expand3x3 (Convolution2D)  (None, 13, 13, 192)   83136       fire7/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire7/relu_expand1x1 (Activation (None, 13, 13, 192)   0           fire7/expand1x1[0][0]            
____________________________________________________________________________________________________
fire7/relu_expand3x3 (Activation (None, 13, 13, 192)   0           fire7/expand3x3[0][0]            
____________________________________________________________________________________________________
fire7/concat (Merge)             (None, 13, 13, 384)   0           fire7/relu_expand1x1[0][0]       
                                                                   fire7/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire8/squeeze1x1 (Convolution2D) (None, 13, 13, 64)    24640       fire7/concat[0][0]               
____________________________________________________________________________________________________
fire8/relu_squeeze1x1 (Activatio (None, 13, 13, 64)    0           fire8/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire8/expand1x1 (Convolution2D)  (None, 13, 13, 256)   16640       fire8/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire8/expand3x3 (Convolution2D)  (None, 13, 13, 256)   147712      fire8/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire8/relu_expand1x1 (Activation (None, 13, 13, 256)   0           fire8/expand1x1[0][0]            
____________________________________________________________________________________________________
fire8/relu_expand3x3 (Activation (None, 13, 13, 256)   0           fire8/expand3x3[0][0]            
____________________________________________________________________________________________________
fire8/concat (Merge)             (None, 13, 13, 512)   0           fire8/relu_expand1x1[0][0]       
                                                                   fire8/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire9/squeeze1x1 (Convolution2D) (None, 13, 13, 64)    32832       fire8/concat[0][0]               
____________________________________________________________________________________________________
fire9/relu_squeeze1x1 (Activatio (None, 13, 13, 64)    0           fire9/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire9/expand1x1 (Convolution2D)  (None, 13, 13, 256)   16640       fire9/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire9/expand3x3 (Convolution2D)  (None, 13, 13, 256)   147712      fire9/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire9/relu_expand1x1 (Activation (None, 13, 13, 256)   0           fire9/expand1x1[0][0]            
____________________________________________________________________________________________________
fire9/relu_expand3x3 (Activation (None, 13, 13, 256)   0           fire9/expand3x3[0][0]            
____________________________________________________________________________________________________
fire9/concat (Merge)             (None, 13, 13, 512)   0           fire9/relu_expand1x1[0][0]       
                                                                   fire9/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
drop9 (Dropout)                  (None, 13, 13, 512)   0           fire9/concat[0][0]               
____________________________________________________________________________________________________
conv10 (Convolution2D)           (None, 13, 13, 1000)  513000      drop9[0][0]                      
____________________________________________________________________________________________________
relu_conv10 (Activation)         (None, 13, 13, 1000)  0           conv10[0][0]                     
____________________________________________________________________________________________________
globalaveragepooling2d_7 (Global (None, 1000)          0           relu_conv10[0][0]                
____________________________________________________________________________________________________
loss (Activation)                (None, 1000)          0           globalaveragepooling2d_7[0][0]   
====================================================================================================
Total params: 1,235,496
Trainable params: 1,235,496
Non-trainable params: 0
____________________________________________________________________________________________________

In [144]:



Out[144]:
{'dim_ordering': 'tf', 'name': 'globalaveragepooling2d_6', 'trainable': True}

In [152]:
# Add final layer with 1 class
conv10= Convolution2D(2,1,1, activation='linear',name="conv10")
relu_conv10 = Activation(activation='relu', name='relu_conv10')
globalaveragepooling2d_3 = GlobalAveragePooling2D(name='globalaveragepooling2d_3')
loss =  Activation(activation='softmax', name='loss')

layer = conv10(squeezenet_model.layers[62].output)
layer = relu_conv10(layer)
layer = globalaveragepooling2d_3(layer)
layer = loss(layer)
model = Model(input=squeezenet_model.inputs, output=layer)

model.compile(loss='categorical_crossentropy', optimizer='adam')


model.summary()
globalaveragepooling2d_3.get_config()


____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
input_6 (InputLayer)             (None, 227, 227, 3)   0                                            
____________________________________________________________________________________________________
conv1 (Convolution2D)            (None, 113, 113, 64)  1792        input_6[0][0]                    
____________________________________________________________________________________________________
relu_conv1 (Activation)          (None, 113, 113, 64)  0           conv1[0][0]                      
____________________________________________________________________________________________________
pool1 (MaxPooling2D)             (None, 56, 56, 64)    0           relu_conv1[0][0]                 
____________________________________________________________________________________________________
fire2/squeeze1x1 (Convolution2D) (None, 56, 56, 16)    1040        pool1[0][0]                      
____________________________________________________________________________________________________
fire2/relu_squeeze1x1 (Activatio (None, 56, 56, 16)    0           fire2/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire2/expand1x1 (Convolution2D)  (None, 56, 56, 64)    1088        fire2/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire2/expand3x3 (Convolution2D)  (None, 56, 56, 64)    9280        fire2/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire2/relu_expand1x1 (Activation (None, 56, 56, 64)    0           fire2/expand1x1[0][0]            
____________________________________________________________________________________________________
fire2/relu_expand3x3 (Activation (None, 56, 56, 64)    0           fire2/expand3x3[0][0]            
____________________________________________________________________________________________________
fire2/concat (Merge)             (None, 56, 56, 128)   0           fire2/relu_expand1x1[0][0]       
                                                                   fire2/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire3/squeeze1x1 (Convolution2D) (None, 56, 56, 16)    2064        fire2/concat[0][0]               
____________________________________________________________________________________________________
fire3/relu_squeeze1x1 (Activatio (None, 56, 56, 16)    0           fire3/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire3/expand1x1 (Convolution2D)  (None, 56, 56, 64)    1088        fire3/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire3/expand3x3 (Convolution2D)  (None, 56, 56, 64)    9280        fire3/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire3/relu_expand1x1 (Activation (None, 56, 56, 64)    0           fire3/expand1x1[0][0]            
____________________________________________________________________________________________________
fire3/relu_expand3x3 (Activation (None, 56, 56, 64)    0           fire3/expand3x3[0][0]            
____________________________________________________________________________________________________
fire3/concat (Merge)             (None, 56, 56, 128)   0           fire3/relu_expand1x1[0][0]       
                                                                   fire3/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
pool3 (MaxPooling2D)             (None, 27, 27, 128)   0           fire3/concat[0][0]               
____________________________________________________________________________________________________
fire4/squeeze1x1 (Convolution2D) (None, 27, 27, 32)    4128        pool3[0][0]                      
____________________________________________________________________________________________________
fire4/relu_squeeze1x1 (Activatio (None, 27, 27, 32)    0           fire4/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire4/expand1x1 (Convolution2D)  (None, 27, 27, 128)   4224        fire4/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire4/expand3x3 (Convolution2D)  (None, 27, 27, 128)   36992       fire4/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire4/relu_expand1x1 (Activation (None, 27, 27, 128)   0           fire4/expand1x1[0][0]            
____________________________________________________________________________________________________
fire4/relu_expand3x3 (Activation (None, 27, 27, 128)   0           fire4/expand3x3[0][0]            
____________________________________________________________________________________________________
fire4/concat (Merge)             (None, 27, 27, 256)   0           fire4/relu_expand1x1[0][0]       
                                                                   fire4/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire5/squeeze1x1 (Convolution2D) (None, 27, 27, 32)    8224        fire4/concat[0][0]               
____________________________________________________________________________________________________
fire5/relu_squeeze1x1 (Activatio (None, 27, 27, 32)    0           fire5/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire5/expand1x1 (Convolution2D)  (None, 27, 27, 128)   4224        fire5/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire5/expand3x3 (Convolution2D)  (None, 27, 27, 128)   36992       fire5/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire5/relu_expand1x1 (Activation (None, 27, 27, 128)   0           fire5/expand1x1[0][0]            
____________________________________________________________________________________________________
fire5/relu_expand3x3 (Activation (None, 27, 27, 128)   0           fire5/expand3x3[0][0]            
____________________________________________________________________________________________________
fire5/concat (Merge)             (None, 27, 27, 256)   0           fire5/relu_expand1x1[0][0]       
                                                                   fire5/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
pool5 (MaxPooling2D)             (None, 13, 13, 256)   0           fire5/concat[0][0]               
____________________________________________________________________________________________________
fire6/squeeze1x1 (Convolution2D) (None, 13, 13, 48)    12336       pool5[0][0]                      
____________________________________________________________________________________________________
fire6/relu_squeeze1x1 (Activatio (None, 13, 13, 48)    0           fire6/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire6/expand1x1 (Convolution2D)  (None, 13, 13, 192)   9408        fire6/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire6/expand3x3 (Convolution2D)  (None, 13, 13, 192)   83136       fire6/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire6/relu_expand1x1 (Activation (None, 13, 13, 192)   0           fire6/expand1x1[0][0]            
____________________________________________________________________________________________________
fire6/relu_expand3x3 (Activation (None, 13, 13, 192)   0           fire6/expand3x3[0][0]            
____________________________________________________________________________________________________
fire6/concat (Merge)             (None, 13, 13, 384)   0           fire6/relu_expand1x1[0][0]       
                                                                   fire6/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire7/squeeze1x1 (Convolution2D) (None, 13, 13, 48)    18480       fire6/concat[0][0]               
____________________________________________________________________________________________________
fire7/relu_squeeze1x1 (Activatio (None, 13, 13, 48)    0           fire7/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire7/expand1x1 (Convolution2D)  (None, 13, 13, 192)   9408        fire7/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire7/expand3x3 (Convolution2D)  (None, 13, 13, 192)   83136       fire7/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire7/relu_expand1x1 (Activation (None, 13, 13, 192)   0           fire7/expand1x1[0][0]            
____________________________________________________________________________________________________
fire7/relu_expand3x3 (Activation (None, 13, 13, 192)   0           fire7/expand3x3[0][0]            
____________________________________________________________________________________________________
fire7/concat (Merge)             (None, 13, 13, 384)   0           fire7/relu_expand1x1[0][0]       
                                                                   fire7/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire8/squeeze1x1 (Convolution2D) (None, 13, 13, 64)    24640       fire7/concat[0][0]               
____________________________________________________________________________________________________
fire8/relu_squeeze1x1 (Activatio (None, 13, 13, 64)    0           fire8/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire8/expand1x1 (Convolution2D)  (None, 13, 13, 256)   16640       fire8/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire8/expand3x3 (Convolution2D)  (None, 13, 13, 256)   147712      fire8/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire8/relu_expand1x1 (Activation (None, 13, 13, 256)   0           fire8/expand1x1[0][0]            
____________________________________________________________________________________________________
fire8/relu_expand3x3 (Activation (None, 13, 13, 256)   0           fire8/expand3x3[0][0]            
____________________________________________________________________________________________________
fire8/concat (Merge)             (None, 13, 13, 512)   0           fire8/relu_expand1x1[0][0]       
                                                                   fire8/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire9/squeeze1x1 (Convolution2D) (None, 13, 13, 64)    32832       fire8/concat[0][0]               
____________________________________________________________________________________________________
fire9/relu_squeeze1x1 (Activatio (None, 13, 13, 64)    0           fire9/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire9/expand1x1 (Convolution2D)  (None, 13, 13, 256)   16640       fire9/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire9/expand3x3 (Convolution2D)  (None, 13, 13, 256)   147712      fire9/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire9/relu_expand1x1 (Activation (None, 13, 13, 256)   0           fire9/expand1x1[0][0]            
____________________________________________________________________________________________________
fire9/relu_expand3x3 (Activation (None, 13, 13, 256)   0           fire9/expand3x3[0][0]            
____________________________________________________________________________________________________
fire9/concat (Merge)             (None, 13, 13, 512)   0           fire9/relu_expand1x1[0][0]       
                                                                   fire9/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
drop9 (Dropout)                  (None, 13, 13, 512)   0           fire9/concat[0][0]               
____________________________________________________________________________________________________
conv10 (Convolution2D)           (None, 13, 13, 2)     1026        drop9[0][0]                      
____________________________________________________________________________________________________
relu_conv10 (Activation)         (None, 13, 13, 2)     0           conv10[0][0]                     
____________________________________________________________________________________________________
globalaveragepooling2d_3 (Global (None, 2)             0           relu_conv10[0][0]                
____________________________________________________________________________________________________
loss (Activation)                (None, 2)             0           globalaveragepooling2d_3[0][0]   
====================================================================================================
Total params: 723,522
Trainable params: 723,522
Non-trainable params: 0
____________________________________________________________________________________________________
Out[152]:
{'dim_ordering': 'tf', 'name': 'globalaveragepooling2d_3', 'trainable': True}

In [154]:
# Fit squeezenet the model 
history = model.fit(X_train, Y_train, 
                             #validation_data=(X_verify_squeezenet, Y_verify),
                             validation_split=0.33, 
                             nb_epoch=150, batch_size=300, 
                             callbacks=[early_stop],
                             verbose=0)
# list all data in history
print(history.history.keys())


Epoch 00019: early stopping
['loss', 'val_loss']

In [ ]:
score_test = model_squeezenet.evaluate(X_train_squeezenet, Y_train, verbose=0)

print("%s: %.2f%%" % (model_squeezenet.metrics_names[1], score_test[1]*100))

score_valid = model_squeezenet.evaluate(X_verify_squeezenet, Y_verify, verbose=0)

print("%s: %.2f%%" % (model_squeezenet.metrics_names[1], score_valid[1]*100))

In [155]:
# # summarize history for accuracy
# plt.plot(history.history['acc'])
# plt.plot(history.history['val_acc'])
# plt.title('model accuracy')
# plt.ylabel('accuracy')
# plt.xlabel('epoch')
# plt.legend(['train', 'val'], loc='upper left')
# plt.show()


# summarize history for loss
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'val'], loc='upper left')
plt.show()



In [162]:
X_test_ResNet50=unpickle('ResNet50_test_preds.pickle')
X_test_squeezenet=unpickle('squeezenet_test_preds.pickle')

Y_test_squeezenet=model_squeezenet.predict(X_test_squeezenet)
Y_test_ResNet50=model_ResNet50.predict(X_test_squeezenet)



NameErrorTraceback (most recent call last)
<ipython-input-162-34bf666526a9> in <module>()
----> 1 X_test_ResNet50=unpickle('ResNet50_test_preds.pickle')
      2 X_test_squeezenet=unpickle('squeezenet_test_preds.pickle')
      3 
      4 Y_test_squeezenet=model_squeezenet.predict(X_test_squeezenet)
      5 Y_test_ResNet50=model_ResNet50.predict(X_test_squeezenet)

NameError: name 'unpickle' is not defined

In [163]:
plt.hist(Y_test_ResNet50, bins='auto', log=True) 
plt.title("Aspect ratio Histogram (log scale)")
plt.show()

plt.hist(Y_test_squeezenet, bins='auto', log=True) 
plt.title("Aspect ratio Histogram (log scale)")
plt.show()



NameErrorTraceback (most recent call last)
<ipython-input-163-818c22118261> in <module>()
----> 1 plt.hist(Y_test_ResNet50, bins='auto', log=True)
      2 plt.title("Aspect ratio Histogram (log scale)")
      3 plt.show()
      4 
      5 plt.hist(Y_test_squeezenet, bins='auto', log=True)

NameError: name 'Y_test_ResNet50' is not defined

In [113]:
import re
test_ids=[re.split('/|\.',i)[1] for i in test_images]

In [118]:
Y_test_ResNet50_csv=np.column_stack((test_ids,Y_test_ResNet50))
Y_test_squeezenet_csv=np.column_stack((test_ids,Y_test_squeezenet))

In [120]:
np.savetxt('Y_test_ResNet50.csv',Y_test_ResNet50_csv, fmt="%s,%s", header=("id,label"),comments='')
np.savetxt('Y_test_squeezene.csv',Y_test_squeezenet_csv, fmt="%s,%s", header=("id,label"),comments='')

In [160]:
plt.imshow(X_train[2])
print(Y_train[2])


[ 0.  1.]

In [ ]: