我们从Python开源项目中,提取了以下19个代码示例,用于说明如何使用keras.layers.convolutional.Convolution3D()。
def create_model_2(): inputs = Input((32, 32, 32, 1)) #noise = GaussianNoise(sigma=0.1)(x) conv1 = Convolution3D(32, 3, 3, 3, activation='relu', border_mode='same')(inputs) conv1 = SpatialDropout3D(0.1)(conv1) conv1 = Convolution3D(64, 3, 3, 3, activation='relu', border_mode='same')(conv1) pool1 = MaxPooling3D(pool_size=(2,2, 2))(conv1) x = Flatten()(pool1) x = Dense(64, init='normal')(x) x = Dropout(0.5)(x) predictions = Dense(1, init='normal', activation='sigmoid')(x) model = Model(input=inputs, output=predictions) model.summary() optimizer = Adam(lr=1e-5) model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['binary_accuracy','precision','recall','mean_squared_error','accuracy']) return model
def create_model_1(): inputs = Input((32, 32, 32, 1)) #noise = GaussianNoise(sigma=0.1)(x) conv1 = Convolution3D(32, 3, 3, 3, activation='relu', border_mode='same')(inputs) conv1 = SpatialDropout3D(0.1)(conv1) conv1 = Convolution3D(64, 3, 3, 3, activation='relu', border_mode='same')(conv1) pool1 = MaxPooling3D(pool_size=(2,2, 2))(conv1) x = Flatten()(pool1) x = Dense(64, init='normal')(x) predictions = Dense(1, init='normal', activation='sigmoid')(x) model = Model(input=inputs, output=predictions) model.summary() optimizer = Adam(lr=1e-5) model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['binary_accuracy','precision','recall','mean_squared_error','accuracy']) return model
def seq3DCNN(n_flow=4, seq_len=3, map_height=32, map_width=32): model=Sequential() # model.add(ZeroPadding3D(padding=(0, 1, 1), input_shape=(n_flow, seq_len, map_height, map_width))) # model.add(Convolution3D(64, 2, 3, 3, border_mode='valid')) model.add(Convolution3D(64, 2, 3, 3, border_mode='same', input_shape=(n_flow, seq_len, map_height, map_width))) model.add(Activation('relu')) model.add(Convolution3D(128, 2, 3, 3, border_mode='same')) model.add(Activation('relu')) model.add(Convolution3D(64, 2, 3, 3, border_mode='same')) model.add(Activation('relu')) model.add(ZeroPadding3D(padding=(0, 1, 1))) model.add(Convolution3D(n_flow, seq_len, 3, 3, border_mode='valid')) # model.add(Convolution3D(n_flow, seq_len-2, 3, 3, border_mode='same')) model.add(Activation('tanh')) return model
def preds3d_baseline(width): learning_rate = 5e-5 #optimizer = SGD(lr=learning_rate, momentum = 0.9, decay = 1e-3, nesterov = True) optimizer = Adam(lr=learning_rate) inputs = Input(shape=(1, 136, 168, 168)) conv1 = Convolution3D(width, 3, 3, 3, activation = 'relu', border_mode='same')(inputs) conv1 = BatchNormalization(axis = 1)(conv1) conv1 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(conv1) conv1 = BatchNormalization(axis = 1)(conv1) pool1 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv1) conv2 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(pool1) conv2 = BatchNormalization(axis = 1)(conv2) conv2 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(conv2) conv2 = BatchNormalization(axis = 1)(conv2) pool2 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv2) conv3 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(pool2) conv3 = BatchNormalization(axis = 1)(conv3) conv3 = Convolution3D(width*8, 3, 3, 3, activation = 'relu', border_mode='same')(conv3) conv3 = BatchNormalization(axis = 1)(conv3) pool3 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv3) output = GlobalAveragePooling3D()(pool3) output = Dense(2, activation='softmax', name = 'predictions')(output) model3d = Model(inputs, output) model3d.compile(loss='categorical_crossentropy', optimizer = optimizer, metrics = ['accuracy']) return model3d
def test_convolution_3d(): nb_samples = 2 nb_filter = 2 stack_size = 3 kernel_dim1 = 2 kernel_dim2 = 3 kernel_dim3 = 1 input_len_dim1 = 10 input_len_dim2 = 11 input_len_dim3 = 12 for border_mode in _convolution_border_modes: for subsample in [(1, 1, 1), (2, 2, 2)]: if border_mode == 'same' and subsample != (1, 1, 1): continue layer_test(convolutional.Convolution3D, kwargs={'nb_filter': nb_filter, 'kernel_dim1': kernel_dim1, 'kernel_dim2': kernel_dim2, 'kernel_dim3': kernel_dim3, 'border_mode': border_mode, 'subsample': subsample}, input_shape=(nb_samples, input_len_dim1, input_len_dim2, input_len_dim3, stack_size)) layer_test(convolutional.Convolution3D, kwargs={'nb_filter': nb_filter, 'kernel_dim1': kernel_dim1, 'kernel_dim2': kernel_dim2, 'kernel_dim3': kernel_dim3, 'border_mode': border_mode, 'W_regularizer': 'l2', 'b_regularizer': 'l2', 'activity_regularizer': 'activity_l2', 'subsample': subsample}, input_shape=(nb_samples, input_len_dim1, input_len_dim2, input_len_dim3, stack_size))
def create_model_3_noise2(): inputs = Input((32, 32, 32, 1)) noise = GaussianNoise(sigma=0.02)(inputs) conv1 = Convolution3D(32, 3, 3, 3, activation='relu', border_mode='same')(noise) conv1 = SpatialDropout3D(0.4)(conv1) conv1 = Convolution3D(64, 3, 3, 3, activation='relu', border_mode='same')(conv1) pool1 = MaxPooling3D(pool_size=(2,2, 2))(conv1) conv2 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(pool1) conv2 = SpatialDropout3D(0.4)(conv2) conv2 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(conv2) pool2 = MaxPooling3D(pool_size=(2,2, 2))(conv2) x = Flatten()(pool2) x = Dense(128, init='normal')(x) x = Dropout(0.5)(x) x = Dense(64, init='normal')(x) predictions = Dense(1, init='normal', activation='sigmoid')(x) model = Model(input=inputs, output=predictions) model.summary() optimizer = Adam(lr=0.00001) model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['binary_accuracy','precision','recall','mean_squared_error','accuracy']) return model
def create_model_3_noise(): inputs = Input((32, 32, 32, 1)) noise = GaussianNoise(sigma=0.05)(inputs) conv1 = Convolution3D(32, 3, 3, 3, activation='relu', border_mode='same')(noise) conv1 = SpatialDropout3D(0.1)(conv1) conv1 = Convolution3D(64, 3, 3, 3, activation='relu', border_mode='same')(conv1) pool1 = MaxPooling3D(pool_size=(2,2, 2))(conv1) conv2 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(pool1) conv2 = SpatialDropout3D(0.1)(conv2) conv2 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(conv2) pool2 = MaxPooling3D(pool_size=(2,2, 2))(conv2) x = Flatten()(pool2) x = Dense(64, init='normal')(x) x = Dropout(0.5)(x) predictions = Dense(1, init='normal', activation='sigmoid')(x) model = Model(input=inputs, output=predictions) model.summary() optimizer = Adam(lr=0.000001) model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['binary_accuracy','precision','recall','mean_squared_error','accuracy']) return model
def create_model_8(): inputs = Input((32, 32, 32, 1)) #noise = GaussianNoise(sigma=0.1)(x) conv1 = Convolution3D(32, 3, 3, 3, activation='relu', border_mode='same')(inputs) conv1 = SpatialDropout3D(0.2)(conv1) conv1 = Convolution3D(64, 3, 3, 3, activation='relu', border_mode='same')(conv1) conv1 = SpatialDropout3D(0.2)(conv1) conv1 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(conv1) pool1 = MaxPooling3D(pool_size=(2,2, 2))(conv1) conv2 = Convolution3D(256, 3, 3, 3, activation='relu', border_mode='same')(pool1) conv2 = SpatialDropout3D(0.2)(conv2) conv2 = Convolution3D(512, 3, 3, 3, activation='relu', border_mode='same')(conv2) pool2 = MaxPooling3D(pool_size=(2,2, 2))(conv2) x = Flatten()(pool2) x = Dense(64, init='normal')(x) x = Dropout(0.5)(x) predictions = Dense(1, init='normal', activation='sigmoid')(x) model = Model(input=inputs, output=predictions) model.summary() optimizer = Adam(lr=0.00001) model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['binary_accuracy','precision','recall','mean_squared_error','accuracy']) return model
def create_model_7(): inputs = Input((32, 32, 32, 1)) #noise = GaussianNoise(sigma=0.1)(x) conv1 = Convolution3D(32, 5, 5, 5, activation='relu', border_mode='same')(inputs) conv1 = SpatialDropout3D(0.1)(conv1) conv1 = Convolution3D(64, 5, 5, 5, activation='relu', border_mode='same')(conv1) pool1 = MaxPooling3D(pool_size=(2,2, 2))(conv1) conv2 = Convolution3D(128, 5, 5, 5, activation='relu', border_mode='same')(pool1) conv2 = SpatialDropout3D(0.1)(conv2) conv2 = Convolution3D(128, 5, 5, 5, activation='relu', border_mode='same')(conv2) pool2 = MaxPooling3D(pool_size=(2,2, 2))(conv2) x = Flatten()(pool2) x = Dense(64, init='normal')(x) x = Dropout(0.5)(x) predictions = Dense(1, init='normal', activation='sigmoid')(x) model = Model(input=inputs, output=predictions) model.summary() optimizer = Adam(lr=0.00001) model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['binary_accuracy','precision','recall','mean_squared_error','accuracy']) return model
def create_model_6(): inputs = Input((32, 32, 32, 1)) #noise = GaussianNoise(sigma=0.1)(x) conv1 = Convolution3D(32, 3, 3, 3, activation='relu', border_mode='same')(inputs) conv1 = SpatialDropout3D(0.1)(conv1) conv1 = Convolution3D(64, 3, 3, 3, activation='relu', border_mode='same')(conv1) conv1 = SpatialDropout3D(0.1)(conv1) conv1 = Convolution3D(64, 3, 3, 3, activation='relu', border_mode='same')(conv1) pool1 = MaxPooling3D(pool_size=(2,2, 2))(conv1) conv2 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(pool1) conv2 = SpatialDropout3D(0.1)(conv2) conv2 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(conv2) conv2 = SpatialDropout3D(0.1)(conv2) conv2 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(conv2) pool2 = MaxPooling3D(pool_size=(2,2, 2))(conv2) x = Flatten()(pool2) x = Dense(64, init='normal')(x) x = Dropout(0.5)(x) predictions = Dense(1, init='normal', activation='sigmoid')(x) model = Model(input=inputs, output=predictions) model.summary() optimizer = Adam(lr=0.00001) model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['binary_accuracy','precision','recall','mean_squared_error','accuracy']) return model
def create_model_4(): inputs1 = Input((32, 32, 32, 1)) inputs2 = Input((6,)) #noise = GaussianNoise(sigma=0.1)(x) conv1 = Convolution3D(32, 3, 3, 3, activation='relu', border_mode='same')(inputs1) conv1 = SpatialDropout3D(0.1)(conv1) conv1 = Convolution3D(64, 3, 3, 3, activation='relu', border_mode='same')(conv1) pool1 = MaxPooling3D(pool_size=(2,2, 2))(conv1) conv2 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(pool1) conv2 = SpatialDropout3D(0.1)(conv2) conv2 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(conv2) pool2 = MaxPooling3D(pool_size=(2,2, 2))(conv2) x = Flatten()(pool2) x = merge([x, inputs2], mode='concat') x = Dense(64, init='normal')(x) x = Dropout(0.5)(x) predictions = Dense(1, init='normal', activation='sigmoid')(x) model = Model(input=[inputs1,inputs2], output=predictions) model.summary() optimizer = Adam() model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['binary_accuracy','precision','recall','mean_squared_error','accuracy']) return model
def create_model_3(): inputs = Input((32, 32, 32, 1)) #noise = GaussianNoise(sigma=0.1)(x) conv1 = Convolution3D(32, 3, 3, 3, activation='relu', border_mode='same')(inputs) conv1 = SpatialDropout3D(0.1)(conv1) conv1 = Convolution3D(64, 3, 3, 3, activation='relu', border_mode='same')(conv1) pool1 = MaxPooling3D(pool_size=(2,2, 2))(conv1) conv2 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(pool1) conv2 = SpatialDropout3D(0.1)(conv2) conv2 = Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same')(conv2) pool2 = MaxPooling3D(pool_size=(2,2, 2))(conv2) x = Flatten()(pool2) x = Dense(64, init='normal')(x) x = Dropout(0.5)(x) predictions = Dense(1, init='normal', activation='sigmoid')(x) model = Model(input=inputs, output=predictions) model.summary() optimizer = Adam(lr=0.00001) model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['binary_accuracy','precision','recall','mean_squared_error','accuracy']) return model
def preds3d_baseline(width): learning_rate = 5e-5 optimizer = SGD(lr=learning_rate, momentum = 0.9, decay = 1e-3, nesterov = True) #optimizer = Adam(lr=learning_rate) inputs = Input(shape=(1, 136, 168, 168)) conv1 = Convolution3D(width, 3, 3, 3, activation = 'relu', border_mode='same')(inputs) conv1 = BatchNormalization(axis = 1)(conv1) conv1 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(conv1) conv1 = BatchNormalization(axis = 1)(conv1) pool1 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv1) conv2 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(pool1) conv2 = BatchNormalization(axis = 1)(conv2) conv2 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(conv2) conv2 = BatchNormalization(axis = 1)(conv2) pool2 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv2) conv3 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(pool2) conv3 = BatchNormalization(axis = 1)(conv3) conv3 = Convolution3D(width*8, 3, 3, 3, activation = 'relu', border_mode='same')(conv3) conv3 = BatchNormalization(axis = 1)(conv3) pool3 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv3) output = GlobalAveragePooling3D()(pool3) output = Dense(2, activation='softmax', name = 'predictions')(output) model3d = Model(inputs, output) model3d.compile(loss='categorical_crossentropy', optimizer = optimizer, metrics = ['accuracy']) return model3d # 1398 stage1 original examples
def preds3d_globalavg(width): learning_rate = 5e-5 #optimizer = SGD(lr=learning_rate, momentum = 0.9, decay = 1e-3, nesterov = True) optimizer = Adam(lr=learning_rate) inputs = Input(shape=(1, 136, 168, 168)) conv1 = Convolution3D(width, 3, 3, 3, activation = 'relu', border_mode='same')(inputs) conv1 = BatchNormalization(axis = 1)(conv1) conv1 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(conv1) conv1 = BatchNormalization(axis = 1)(conv1) pool1 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv1) conv2 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(pool1) conv2 = BatchNormalization(axis = 1)(conv2) conv2 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(conv2) conv2 = BatchNormalization(axis = 1)(conv2) pool2 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv2) conv3 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(pool2) conv3 = BatchNormalization(axis = 1)(conv3) conv3 = Convolution3D(width*8, 3, 3, 3, activation = 'relu', border_mode='same')(conv3) conv3 = BatchNormalization(axis = 1)(conv3) pool3 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv3) conv4 = Convolution3D(width*8, 3, 3, 3, activation = 'relu', border_mode='same')(pool3) conv4 = BatchNormalization(axis = 1)(conv4) conv4 = Convolution3D(width*16, 3, 3, 3, activation = 'relu', border_mode='same')(conv4) conv4 = BatchNormalization(axis = 1)(conv4) pool4 = MaxPooling3D(pool_size=(8, 8, 8), border_mode='same')(conv4) output = GlobalAveragePooling3D()(conv4) output = Dense(2, activation='softmax', name = 'predictions')(output) model3d = Model(inputs, output) model3d.compile(loss='categorical_crossentropy', optimizer = optimizer, metrics = ['accuracy']) return model3d
def unet_model(): inputs = Input(shape=(1, max_slices, img_size, img_size)) conv1 = Convolution3D(width, 3, 3, 3, activation = 'relu', border_mode='same')(inputs) conv1 = BatchNormalization(axis = 1)(conv1) conv1 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(conv1) conv1 = BatchNormalization(axis = 1)(conv1) pool1 = MaxPooling3D(pool_size=(2, 2, 2), strides = (2, 2, 2), border_mode='same')(conv1) conv2 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(pool1) conv2 = BatchNormalization(axis = 1)(conv2) conv2 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(conv2) conv2 = BatchNormalization(axis = 1)(conv2) pool2 = MaxPooling3D(pool_size=(2, 2, 2), strides = (2, 2, 2), border_mode='same')(conv2) conv3 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(pool2) conv3 = BatchNormalization(axis = 1)(conv3) conv3 = Convolution3D(width*8, 3, 3, 3, activation = 'relu', border_mode='same')(conv3) conv3 = BatchNormalization(axis = 1)(conv3) pool3 = MaxPooling3D(pool_size=(2, 2, 2), strides = (2, 2, 2), border_mode='same')(conv3) conv4 = Convolution3D(width*8, 3, 3, 3, activation = 'relu', border_mode='same')(pool3) conv4 = BatchNormalization(axis = 1)(conv4) conv4 = Convolution3D(width*8, 3, 3, 3, activation = 'relu', border_mode='same')(conv4) conv4 = BatchNormalization(axis = 1)(conv4) conv4 = Convolution3D(width*16, 3, 3, 3, activation = 'relu', border_mode='same')(conv4) conv4 = BatchNormalization(axis = 1)(conv4) up5 = merge([UpSampling3D(size=(2, 2, 2))(conv4), conv3], mode='concat', concat_axis=1) conv5 = SpatialDropout3D(dropout_rate)(up5) conv5 = Convolution3D(width*8, 3, 3, 3, activation = 'relu', border_mode='same')(conv5) conv5 = Convolution3D(width*8, 3, 3, 3, activation = 'relu', border_mode='same')(conv5) up6 = merge([UpSampling3D(size=(2, 2, 2))(conv5), conv2], mode='concat', concat_axis=1) conv6 = SpatialDropout3D(dropout_rate)(up6) conv6 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(conv6) conv6 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(conv6) up7 = merge([UpSampling3D(size=(2, 2, 2))(conv6), conv1], mode='concat', concat_axis=1) conv7 = SpatialDropout3D(dropout_rate)(up7) conv7 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(conv7) conv7 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(conv7) conv8 = Convolution3D(1, 1, 1, 1, activation='sigmoid')(conv7) model = Model(input=inputs, output=conv8) model.compile(optimizer=Adam(lr=1e-5), loss=dice_coef_loss, metrics=[dice_coef]) return model
def preds3d_dense(width): learning_rate = 5e-5 #optimizer = SGD(lr=learning_rate, momentum = 0.9, decay = 1e-3, nesterov = True) optimizer = Adam(lr=learning_rate) inputs = Input(shape=(1, 136, 168, 168)) conv1 = Convolution3D(width, 3, 3, 3, activation = 'relu', border_mode='same')(inputs) conv1 = BatchNormalization(axis = 1)(conv1) conv1 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(conv1) conv1 = BatchNormalization(axis = 1)(conv1) pool1 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv1) conv2 = Convolution3D(width*2, 3, 3, 3, activation = 'relu', border_mode='same')(pool1) conv2 = BatchNormalization(axis = 1)(conv2) conv2 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(conv2) conv2 = BatchNormalization(axis = 1)(conv2) pool2 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv2) conv3 = Convolution3D(width*4, 3, 3, 3, activation = 'relu', border_mode='same')(pool2) conv3 = BatchNormalization(axis = 1)(conv3) conv3 = Convolution3D(width*8, 3, 3, 3, activation = 'relu', border_mode='same')(conv3) conv3 = BatchNormalization(axis = 1)(conv3) pool3 = MaxPooling3D(pool_size=(2, 2, 2), border_mode='same')(conv3) conv4 = Convolution3D(width*8, 3, 3, 3, activation = 'relu', border_mode='same')(pool3) conv4 = BatchNormalization(axis = 1)(conv4) conv4 = Convolution3D(width*16, 3, 3, 3, activation = 'relu', border_mode='same')(conv4) conv4 = BatchNormalization(axis = 1)(conv4) pool4 = MaxPooling3D(pool_size=(8, 8, 8), border_mode='same')(conv4) output = Flatten(name='flatten')(pool4) output = Dropout(0.2)(output) output = Dense(128)(output) output = PReLU()(output) output = BatchNormalization()(output) output = Dropout(0.2)(output) output = Dense(128)(output) output = PReLU()(output) output = BatchNormalization()(output) output = Dropout(0.3)(output) output = Dense(2, activation='softmax', name = 'predictions')(output) model3d = Model(inputs, output) model3d.compile(loss='categorical_crossentropy', optimizer = optimizer, metrics = ['accuracy']) return model3d
def get_model(summary=False, backend='tf'): """ Return the Keras model of the network """ model = Sequential() if backend == 'tf': input_shape=(16, 112, 112, 3) # l, h, w, c else: input_shape=(3, 16, 112, 112) # c, l, h, w model.add(Convolution3D(64, 3, 3, 3, activation='relu', border_mode='same', name='conv1', input_shape=input_shape)) model.add(MaxPooling3D(pool_size=(1, 2, 2), strides=(1, 2, 2), border_mode='valid', name='pool1')) # 2nd layer group model.add(Convolution3D(128, 3, 3, 3, activation='relu', border_mode='same', name='conv2')) model.add(MaxPooling3D(pool_size=(2, 2, 2), strides=(2, 2, 2), border_mode='valid', name='pool2')) # 3rd layer group model.add(Convolution3D(256, 3, 3, 3, activation='relu', border_mode='same', name='conv3a')) model.add(Convolution3D(256, 3, 3, 3, activation='relu', border_mode='same', name='conv3b')) model.add(MaxPooling3D(pool_size=(2, 2, 2), strides=(2, 2, 2), border_mode='valid', name='pool3')) # 4th layer group model.add(Convolution3D(512, 3, 3, 3, activation='relu', border_mode='same', name='conv4a')) model.add(Convolution3D(512, 3, 3, 3, activation='relu', border_mode='same', name='conv4b')) model.add(MaxPooling3D(pool_size=(2, 2, 2), strides=(2, 2, 2), border_mode='valid', name='pool4')) # 5th layer group model.add(Convolution3D(512, 3, 3, 3, activation='relu', border_mode='same', name='conv5a')) model.add(Convolution3D(512, 3, 3, 3, activation='relu', border_mode='same', name='conv5b')) model.add(ZeroPadding3D(padding=((0, 0), (0, 1), (0, 1)), name='zeropad5')) model.add(MaxPooling3D(pool_size=(2, 2, 2), strides=(2, 2, 2), border_mode='valid', name='pool5')) model.add(Flatten()) # FC layers group model.add(Dense(4096, activation='relu', name='fc6')) model.add(Dropout(.5)) model.add(Dense(4096, activation='relu', name='fc7')) model.add(Dropout(.5)) model.add(Dense(487, activation='softmax', name='fc8')) if summary: print(model.summary()) return model