Beispiel #1
0
# In[15]:

# Build a model
from keras.models import Sequential, Model
from keras.layers.core import Dense, Activation, Flatten, Dropout, Lambda
from keras.layers import Input
from keras.activations import relu, softmax
from keras.layers.convolutional import Convolution2D, Cropping2D
from keras.layers.pooling import MaxPooling2D
from keras.layers.normalization import BatchNormalization
from keras.engine.topology import Merge, merge

model_input = Input(shape=(160, 320, 3))
model_stem = model_input
model_stem = Lambda(lambda x: (x - 128.0) / 255.0,
                    input_shape=model_stem.get_shape()[1:])(model_stem)
model_stem = Cropping2D(cropping=((60, 20), (0, 0)),
                        input_shape=model_stem.get_shape()[1:])(model_stem)
model_stem = Convolution2D(16, 3, 3, border_mode='valid',
                           subsample=(2, 2))(model_stem)
model_stem = MaxPooling2D(pool_size=(2, 2), strides=None,
                          border_mode='same')(model_stem)
branch_input = Activation('elu')(model_stem)

branch_input = BatchNormalization(epsilon=0.001, mode=0, axis=3,
                                  momentum=0.9)(branch_input)

left_branch = Convolution2D(32, 1, 1, border_mode='same')(branch_input)

right_branch = Convolution2D(32, 7, 1, border_mode='same')(branch_input)
right_branch = Activation('elu')(right_branch)