def build_all_cnn(args): return SequentialNetwork([ #Dropout(0.1), Conv2D(96, (3, 3), kernel_initializer=he_normal, padding='same', kernel_regularizer=l2reg(args.l2), name='conv2D_1'), BatchNormalization(momentum=0.0, name='batch_norm_1'), Activation('relu'), Conv2D(96, (3, 3), kernel_initializer=he_normal, padding='same', kernel_regularizer=l2reg(args.l2), name='conv2D_2'), BatchNormalization(momentum=0.0, name='batch_norm_2'), Activation('relu'), Conv2D(96, (3, 3), kernel_initializer=he_normal, padding='same', strides=(2, 2), name='conv2D_strided_1'), Dropout(0.5), Conv2D(192, (3, 3), kernel_initializer=he_normal, padding='same', kernel_regularizer=l2reg(args.l2), name='conv2D_3'), BatchNormalization(momentum=0.0, name='batch_norm_3'), Activation('relu'), Conv2D(192, (3, 3), kernel_initializer=he_normal, padding='same', kernel_regularizer=l2reg(args.l2), name='conv2D_4'), BatchNormalization(momentum=0.0, name='batch_norm_4'), Activation('relu'), Conv2D(192, (3, 3), kernel_initializer=he_normal, padding='same', strides=(2, 2), name='conv2D_strided_2'), Dropout(0.5), Conv2D(192, (3, 3), kernel_initializer=he_normal, padding='same', kernel_regularizer=l2reg(args.l2), name='conv2D_5'), BatchNormalization(momentum=0.0, name='batch_norm_5'), Activation('relu'), Conv2D(192, (1, 1), kernel_initializer=he_normal, padding='same', kernel_regularizer=l2reg(args.l2), name='conv2D_6'), BatchNormalization(momentum=0.0, name='batch_norm_6'), Activation('relu'), Conv2D(10, (1, 1), kernel_initializer=he_normal, padding='same', kernel_regularizer=l2reg(args.l2), name='conv2D_7'), GlobalAveragePooling2D() ])
def build_lenet_conv(args): # ok this is a slightly modified lenet return SequentialNetwork([ Conv2D(20, 5, kernel_initializer=he_normal, padding='same', kernel_regularizer=l2reg(args.l2), name='conv2D_1'), # BatchNormalization(momentum=0.0, name='batch_norm_1'), Activation('relu'), MaxPooling2D((2, 2), (2, 2)), Conv2D(40, 5, kernel_initializer=he_normal, padding='same', kernel_regularizer=l2reg(args.l2), name='conv2D_2'), # BatchNormalization(momentum=0.0, name='batch_norm_2'), Activation('relu'), MaxPooling2D((2, 2), (2, 2)), Flatten(), Dropout(0.25), Dense(400, kernel_initializer=he_normal, activation=relu, kernel_regularizer=l2reg(args.l2), name='fc_1'), Dropout(0.5), Dense(10, kernel_initializer=he_normal, activation=None, kernel_regularizer=l2reg(args.l2), name='fc_2') ])
def build_vgg_half(args): return SequentialNetwork([ Conv2D(32, (3, 3), kernel_initializer=he_normal, padding='same', activation=relu, kernel_regularizer=l2reg(args.l2), name='conv2D_1'), MaxPooling2D((2, 2), (2, 2)), Conv2D(64, (3, 3), kernel_initializer=he_normal, padding='same', activation=relu, kernel_regularizer=l2reg(args.l2), name='conv2D_2'), MaxPooling2D((2, 2), (2, 2)), Conv2D(128, (3, 3), kernel_initializer=he_normal, padding='same', activation=relu, kernel_regularizer=l2reg(args.l2), name='conv2D_3'), Conv2D(128, (3, 3), kernel_initializer=he_normal, padding='same', activation=relu, kernel_regularizer=l2reg(args.l2), name='conv2D_4'), MaxPooling2D((2, 2), (2, 2)), Conv2D(256, (3, 3), kernel_initializer=he_normal, padding='same', activation=relu, kernel_regularizer=l2reg(args.l2), name='conv2D_5'), Conv2D(256, (3, 3), kernel_initializer=he_normal, padding='same', activation=relu, kernel_regularizer=l2reg(args.l2), name='conv2D_6'), MaxPooling2D((2, 2), (2, 2)), Flatten(), Dense(512, kernel_initializer=he_normal, activation=relu, kernel_regularizer=l2reg(args.l2), name='fc_1'), Dropout(0.5), Dense(512, kernel_initializer=he_normal, activation=relu, kernel_regularizer=l2reg(args.l2), name='fc_2'), Dropout(0.5), Dense(10, kernel_initializer=he_normal, activation=None, kernel_regularizer=l2reg(args.l2), name='fc_3') ])
def build_basic_model(args): return SequentialNetwork([ Conv2D(16, 2, padding='same', name='conv2D_1'), # BatchNormalization(momentum=0.0, name='batch_norm_1'), Activation('relu'), MaxPooling2D((2, 2), (2, 2)), Conv2D(32, 2, padding='same', name='conv2D_2'), # BatchNormalization(momentum=0.0, name='batch_norm_2'), Activation('relu'), MaxPooling2D((2, 2), (2, 2)), Conv2D(64, 2, padding='same', name='conv2D_3'), Activation('relu'), MaxPooling2D((2,2), (2,2)), GlobalAveragePooling2D(), Dense(1000, activation=relu), Dropout(0.2), Dense(1000, activation=relu, name='fc_1'), Dropout(0.2), Dense(5, activation= None, name='fc_2') ])