-
-
Save JBed/c2fb3ce8ed299f197eff to your computer and use it in GitHub Desktop.
from keras.models import Sequential | |
from keras.layers.core import Dense, Dropout, Activation, Flatten | |
from keras.layers.convolutional import Convolution2D, MaxPooling2D | |
from keras.layers.normalization import BatchNormalization | |
#AlexNet with batch normalization in Keras | |
#input image is 224x224 | |
model = Sequential() | |
model.add(Convolution2D(64, 3, 11, 11, border_mode='full')) | |
model.add(BatchNormalization((64,226,226))) | |
model.add(Activation('relu')) | |
model.add(MaxPooling2D(poolsize=(3, 3))) | |
model.add(Convolution2D(128, 64, 7, 7, border_mode='full')) | |
model.add(BatchNormalization((128,115,115))) | |
model.add(Activation('relu')) | |
model.add(MaxPooling2D(poolsize=(3, 3))) | |
model.add(Convolution2D(192, 128, 3, 3, border_mode='full')) | |
model.add(BatchNormalization((128,112,112))) | |
model.add(Activation('relu')) | |
model.add(MaxPooling2D(poolsize=(3, 3))) | |
model.add(Convolution2D(256, 192, 3, 3, border_mode='full')) | |
model.add(BatchNormalization((128,108,108))) | |
model.add(Activation('relu')) | |
model.add(MaxPooling2D(poolsize=(3, 3))) | |
model.add(Flatten()) | |
model.add(Dense(12*12*256, 4096, init='normal')) | |
model.add(BatchNormalization(4096)) | |
model.add(Activation('relu')) | |
model.add(Dense(4096, 4096, init='normal')) | |
model.add(BatchNormalization(4096)) | |
model.add(Activation('relu')) | |
model.add(Dense(4096, 1000, init='normal')) | |
model.add(BatchNormalization(1000)) | |
model.add(Activation('softmax')) | |
jiapei100
commented
Jul 27, 2016
Hi
I have downloaded alexnet_weights.h5 file and defined the architecture as mentioned above. However, i get an error as follows
'You are trying to load a weight file containing 34 layers into a model with 19 layers.'
Is there any other weight file available for alexnet?
Please help me to resolve it.
Hi,
Thank you for sharing this. Today it includes errors:
- After copy-paste: Exception: ('Invalid border mode for Convolution2D:', 'full').
- After changing 'full' to valid 'same' I get Exception: The first layer in a Sequential model must get an
input_shape
orbatch_input_shape
argument. - After adding input shapes, TypeError: 'int' object is not callable for Convolution2D objects as they shouldn't take so many integers in arguments.
Could you please update code, so it will run with up-to-date versions of software.
Thank you!
Best regards,
Alex
I believe alexnet has two streams, and cannot be implemented with a sequential model and it must be implemented with the functional api. I only see one stream here.
@JonathanCMitchell - Possible because there are two variants of alexnet. The original one has two streams, but the caffenet version is a single stream. I think this is the caffenet version!
Is there some example codes for using this?
like input = mired()...
model.predict(input)...
Hi guys
I want to use alexnet for feature extraction.I was wondering if could tell me how to feed my as image into alexnet?
alexnet uses overlapping pooling, the first conv layer's pooling should use (3, 3) kernel with stride 2 according to the original paper.
model.add(MaxPooling2D(poolsize=(3, 3), strides=2))
why your Convolution2D have four customized parameters? currently version's keras only need 3 params..??
You can find 2-stream AlexNet here: http://dandxy89.github.io/ImageModels/alexnet/