AlexNet

ImageNet Classification with Deep Convolutional Neural Networks

We trained a large, deep convolutional neural network to classify the 1.2 million high-resolution images in the ImageNet LSVRC-2010 contest into the 1000 different classes. On t…


This content originally appeared on DEV Community and was authored by AI Pool

ImageNet Classification with Deep Convolutional Neural Networks

We trained a large, deep convolutional neural network to classify the 1.2 million high-resolution images in the ImageNet LSVRC-2010 contest into the 1000 different classes. On the test data, we achieved top-1 and top-5 error rates of 37.5% and 17.0% which is considerably better than the previous state-of-the-art. The neural network, which has 60 million parameters and 650,000 neurons, consists of five convolutional layers, some of which are followed by max-pooling layers, and three fully-connected layers with a final 1000-way softmax.

Paper

Implementations

In 2012, AlexNet significantly outperformed all the prior competitors and won the challenge by reducing the top-5 error from 26% to 15.3%. The second place top-5 error rate, which was not a CNN variation, was around 26.2%.

import keras
from keras.models import Sequential
from keras.layers import Dense, Activation, Dropout, Flatten, Conv2D, MaxPooling2D
from keras.layers.normalization import BatchNormalization
import numpy as np
np.random.seed(1000)
#Instantiate an empty model
model = Sequential()

# 1st Convolutional Layer
model.add(Conv2D(filters=96, input_shape=(224,224,3), kernel_size=(11,11), strides=(4,4), padding=valid))
model.add(Activation(relu))
# Max Pooling
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding=valid))

# 2nd Convolutional Layer
model.add(Conv2D(filters=256, kernel_size=(11,11), strides=(1,1), padding=valid))
model.add(Activation(relu))
# Max Pooling
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding=valid))

# 3rd Convolutional Layer
model.add(Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), padding=valid))
model.add(Activation(relu))

# 4th Convolutional Layer
model.add(Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), padding=valid))
model.add(Activation(relu))

# 5th Convolutional Layer
model.add(Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), padding=valid))
model.add(Activation(relu))
# Max Pooling
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding=valid))

# Passing it to a Fully Connected layer
model.add(Flatten())
# 1st Fully Connected Layer
model.add(Dense(4096, input_shape=(224*224*3,)))
model.add(Activation(relu))
# Add Dropout to prevent overfitting
model.add(Dropout(0.4))

# 2nd Fully Connected Layer
model.add(Dense(4096))
model.add(Activation(relu))
# Add Dropout
model.add(Dropout(0.4))

# 3rd Fully Connected Layer
model.add(Dense(1000))
model.add(Activation(relu))
# Add Dropout
model.add(Dropout(0.4))

# Output Layer
model.add(Dense(17))
model.add(Activation(softmax))

model.summary()

# Compile the model
model.compile(loss=keras.losses.categorical_crossentropy, optimizer=adam, metrics=[accuracy])

Author of the implementation: @engmrk

AlexNet

Other Resources


This content originally appeared on DEV Community and was authored by AI Pool


Print Share Comment Cite Upload Translate Updates
APA

AI Pool | Sciencx (2021-05-29T16:01:14+00:00) AlexNet. Retrieved from https://www.scien.cx/2021/05/29/alexnet/

MLA
" » AlexNet." AI Pool | Sciencx - Saturday May 29, 2021, https://www.scien.cx/2021/05/29/alexnet/
HARVARD
AI Pool | Sciencx Saturday May 29, 2021 » AlexNet., viewed ,<https://www.scien.cx/2021/05/29/alexnet/>
VANCOUVER
AI Pool | Sciencx - » AlexNet. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/05/29/alexnet/
CHICAGO
" » AlexNet." AI Pool | Sciencx - Accessed . https://www.scien.cx/2021/05/29/alexnet/
IEEE
" » AlexNet." AI Pool | Sciencx [Online]. Available: https://www.scien.cx/2021/05/29/alexnet/. [Accessed: ]
rf:citation
» AlexNet | AI Pool | Sciencx | https://www.scien.cx/2021/05/29/alexnet/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.