Skip to content

Instantly share code, notes, and snippets.

@NickShargan
Created October 3, 2018 09:48
Show Gist options
  • Save NickShargan/880db7a2be3f6a32b499c5c9f8fcc839 to your computer and use it in GitHub Desktop.
Save NickShargan/880db7a2be3f6a32b499c5c9f8fcc839 to your computer and use it in GitHub Desktop.
from keras.models import Sequential
from keras.layers.core import Flatten, Dense, Dropout
from keras.layers.convolutional import Convolution2D, MaxPooling2D, ZeroPadding2D
from keras.layers import BatchNormalization, GlobalAveragePooling2D
from keras.optimizers import SGD
import numpy as np
import time
img_size = 128
def VGG_12(weights_path=None):
model = Sequential()
model.add(Convolution2D(64, kernel_size=(3, 3), activation='relu', padding='same',
input_shape=(img_size,int(img_size/2),3)))
model.add(BatchNormalization())
model.add(Convolution2D(64, kernel_size=(3, 3), activation='relu', padding='same'))
model.add(BatchNormalization())
model.add(Convolution2D(128, kernel_size=(3, 3), activation='relu', strides=(2,2), padding='same'))
model.add(BatchNormalization())
model.add(Convolution2D(128, kernel_size=(3, 3), activation='relu', padding='same'))
model.add(BatchNormalization())
model.add(Convolution2D(256, kernel_size=(3, 3), activation='relu', strides=(2,2), padding='same'))
model.add(BatchNormalization())
model.add(Convolution2D(256, kernel_size=(3, 3), activation='relu', padding='same'))
model.add(BatchNormalization())
model.add(Convolution2D(256, kernel_size=(3, 3), activation='relu', padding='same'))
model.add(BatchNormalization())
model.add(Convolution2D(512, kernel_size=(3, 3), activation='relu', strides=(2,2), padding='same'))
model.add(BatchNormalization())
model.add(Convolution2D(512, kernel_size=(3, 3), activation='relu', padding='same'))
model.add(BatchNormalization())
model.add(Convolution2D(512, kernel_size=(3, 3), activation='relu', padding='same'))
model.add(BatchNormalization())
model.add(GlobalAveragePooling2D())
model.add(BatchNormalization())
model.add(Dense(1000, activation='relu'))
model.add(Dense(1000, activation='softmax'))
if weights_path:
model.load_weights(weights_path)
return model
if __name__ == "__main__":
im = np.ones((1, img_size, int(img_size/2), 3))
model = VGG_12()
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(optimizer=sgd, loss='categorical_crossentropy')
for i in range(10):
start_time = time.time()
out = model.predict(im)
print("--- %s seconds ---" % (time.time() - start_time))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment