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 [ ]:
Content source: emsi/ml-toolbox
Similar notebooks: