def head_localization(img_channels=1, img_rows=64, img_cols=64): input_img = Input(shape=(img_channels, img_rows, img_cols)) x = Convolution2D(30, 5, 5, init='normal', subsample=(1,1), activation='tanh')(input_img) x = MaxPooling2D((2,2))(x) x = Convolution2D(30, 5, 5, init='normal', subsample=(1,1), activation='tanh')(x) x = MaxPooling2D((2,2))(x) x = Convolution2D(30, 4, 4, init='normal', subsample=(1,1), activation='tanh')(x) x = MaxPooling2D((2,2))(x) x = Convolution2D(30, 3, 3, init='normal', subsample=(1,1), activation='tanh')(x) x = ZeroPadding2D((2, 0))(x) x = MaxPooling2D((2, 2))(x) x = Convolution2D(120, 3, 3, init='normal', subsample=(1,1), activation='tanh')(x) x = Convolution2D(256, 3, 3, init='normal', subsample=(1,1), activation='tanh')(x) x = Convolution2D(256, 3, 3, init='normal', subsample=(1,1), activation='tanh')(x) x = Flatten()(x) x = Dense(256, init='normal', activation='tanh')(x) x = Dropout(0.5)(x) x = Dense(256, init='normal', activation='tanh')(x) x = Dropout(0.5)(x) x = Dense(2, activation='tanh')(x) model = Model(input=input_img, output=x) return model