In [6]:
import keras
from keras.models import Sequential
from keras.layers import Input, Conv2D, MaxPooling2D, Dropout, merge, Activation
from keras.layers.core import Merge

In [ ]:


In [5]:
def base_model():
    seq = Sequential()
    seq.add(Conv2D(12, 5, 5, border_mode='same', input_shape=(3,512,512)))
    seq.add(Activation('Relu'))
    seq.add(Conv2D(24, 5, 5, border_mode='same'))
    seq.add(Activation('Relu'))
    seq.add(MaxPooling2D(strides=(1,1), border_mode='same'))
    seq.add(Conv2D(48, 5, 5, border_mode='same'))
    seq.add(Activation('Relu'))
    seq.add(Conv2D(96, 5, 5, border_mode='same'))
    seq.add(Activation('Relu'))
    seq.add(MaxPooling2D(strides=(1,1), border_mode='same'))
    return seq

In [ ]:
def load_data():
    pass

In [ ]:
(X_train, y_train), (X_test, y_test) = load_data()
input1 = Input(shape=(3,512,512))
input2 = Input(shape=(3,512,512))
base_network = base_model()
processed_1 = base_network(input1)
processed_2 = base_network(input2s)
merged_model = Sequential()
merged_model.add(Merge(layers=[processed_1, processed_2], mode='concat', concat_axis=1))
merged_model.add(seq.add(Conv2D(48, 5, 5, border_mode='same')))
merged_model.add(Activation('Relu'))
merged_model.add(MaxPooling2D(strides=(1,1), border_mode='same'))
merged_model.add(seq.add(Conv2D(96, 5, 5, border_mode='same')))
merged_model.add(Activation('Relu'))
merged_model.add(MaxPooling2D(strides=(1,1), border_mode='same'))
merged_model