Python keras.layers.Convolution2D() Examples
The following are 30
code examples of keras.layers.Convolution2D().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
keras.layers
, or try the search function
.
Example #1
Source File: inception_v3.py From DeepLearning with MIT License | 6 votes |
def conv2d_bn(x, nb_filter, nb_row, nb_col, border_mode='same', subsample=(1, 1), name=None): '''Utility function to apply conv + BN. ''' if name is not None: bn_name = name + '_bn' conv_name = name + '_conv' else: bn_name = None conv_name = None if K.image_dim_ordering() == 'th': bn_axis = 1 else: bn_axis = 3 x = Convolution2D(nb_filter, nb_row, nb_col, subsample=subsample, activation='relu', border_mode=border_mode, name=conv_name)(x) x = BatchNormalization(axis=bn_axis, name=bn_name)(x) return x
Example #2
Source File: mnist.py From blackbox-attacks with MIT License | 6 votes |
def modelB(): model = Sequential() model.add(Dropout(0.2, input_shape=(FLAGS.IMAGE_ROWS, FLAGS.IMAGE_COLS, FLAGS.NUM_CHANNELS))) model.add(Convolution2D(64, 8, 8, subsample=(2, 2), border_mode='same')) model.add(Activation('relu')) model.add(Convolution2D(128, 6, 6, subsample=(2, 2), border_mode='valid')) model.add(Activation('relu')) model.add(Convolution2D(128, 5, 5, subsample=(1, 1))) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Flatten()) model.add(Dense(FLAGS.NUM_CLASSES)) return model
Example #3
Source File: sim-gan.py From SimGAN with MIT License | 6 votes |
def discriminator_network(input_image_tensor): """ The discriminator network, Dφ, contains 5 convolution layers and 2 max-pooling layers. :param input_image_tensor: Input tensor corresponding to an image, either real or refined. :return: Output tensor that corresponds to the probability of whether an image is real or refined. """ x = layers.Convolution2D(96, 3, 3, border_mode='same', subsample=(2, 2), activation='relu')(input_image_tensor) x = layers.Convolution2D(64, 3, 3, border_mode='same', subsample=(2, 2), activation='relu')(x) x = layers.MaxPooling2D(pool_size=(3, 3), border_mode='same', strides=(1, 1))(x) x = layers.Convolution2D(32, 3, 3, border_mode='same', subsample=(1, 1), activation='relu')(x) x = layers.Convolution2D(32, 1, 1, border_mode='same', subsample=(1, 1), activation='relu')(x) x = layers.Convolution2D(2, 1, 1, border_mode='same', subsample=(1, 1), activation='relu')(x) # here one feature map corresponds to `is_real` and the other to `is_refined`, # and the custom loss function is then `tf.nn.sparse_softmax_cross_entropy_with_logits` return layers.Reshape((-1, 2))(x)
Example #4
Source File: cnn_main.py From Convolutional-Networks-for-Stock-Predicting with MIT License | 6 votes |
def create_model(): model = Sequential() model.add(Convolution2D(32, 3, 3, border_mode='valid', input_shape=(100, 100, 3))) model.add(Activation('relu')) model.add(Convolution2D(32, 3, 3)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Convolution2D(64, 3, 3, border_mode='valid')) model.add(Activation('relu')) model.add(Convolution2D(64, 3, 3)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(256)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(2)) model.add(Activation('softmax')) return model
Example #5
Source File: tutorial.py From bird-species-classification with MIT License | 6 votes |
def get_tutorial_model(): model = Sequential() model.add(Convolution2D(32, 3, 3, input_shape=(150, 150, 3))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2), dim_ordering='tf')) model.add(Convolution2D(32, 3, 3)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2), dim_ordering='tf')) model.add(Convolution2D(64, 3, 3)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2), dim_ordering='tf')) # the model so far outputs 3D feature maps (height, width, features) model.add(Flatten()) # this converts our 3D feature maps to 1D feature vectors model.add(Dense(64)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(1)) model.add(Activation('sigmoid')) return model
Example #6
Source File: tutorial.py From bird-species-classification with MIT License | 6 votes |
def get_model(): model = Sequential() model.add(Convolution2D(32, 3, 3, input_shape=(150, 150, 3))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2), dim_ordering='tf')) model.add(Convolution2D(32, 3, 3)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2), dim_ordering='tf')) model.add(Convolution2D(64, 3, 3)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2), dim_ordering='tf')) # the model so far outputs 3D feature maps (height, width, features) model.add(Flatten()) # this converts our 3D feature maps to 1D feature vectors model.add(Dense(64)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(1)) model.add(Activation('sigmoid')) return model
Example #7
Source File: mnist.py From blackbox-attacks with MIT License | 6 votes |
def modelC(): model = Sequential() model.add(Convolution2D(128, 3, 3, border_mode='valid', input_shape=(FLAGS.IMAGE_ROWS, FLAGS.IMAGE_COLS, FLAGS.NUM_CHANNELS))) model.add(Activation('relu')) model.add(Convolution2D(64, 3, 3)) model.add(Activation('relu')) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(128)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(FLAGS.NUM_CLASSES)) return model
Example #8
Source File: mnist.py From blackbox-attacks with MIT License | 6 votes |
def modelF(): model = Sequential() model.add(Convolution2D(32, 3, 3, border_mode='valid', input_shape=(FLAGS.IMAGE_ROWS, FLAGS.IMAGE_COLS, FLAGS.NUM_CHANNELS))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Convolution2D(64, 3, 3)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Flatten()) model.add(Dense(1024)) model.add(Activation('relu')) model.add(Dense(FLAGS.NUM_CLASSES)) return model
Example #9
Source File: networks.py From C51-DDQN-Keras with MIT License | 6 votes |
def value_distribution_network(input_shape, num_atoms, action_size, learning_rate): """Model Value Distribution With States as inputs and output Probability Distributions for all Actions """ state_input = Input(shape=(input_shape)) cnn_feature = Convolution2D(32, 8, 8, subsample=(4,4), activation='relu')(state_input) cnn_feature = Convolution2D(64, 4, 4, subsample=(2,2), activation='relu')(cnn_feature) cnn_feature = Convolution2D(64, 3, 3, activation='relu')(cnn_feature) cnn_feature = Flatten()(cnn_feature) cnn_feature = Dense(512, activation='relu')(cnn_feature) distribution_list = [] for i in range(action_size): distribution_list.append(Dense(num_atoms, activation='softmax')(cnn_feature)) model = Model(input=state_input, output=distribution_list) adam = Adam(lr=learning_rate) model.compile(loss='categorical_crossentropy',optimizer=adam) return model
Example #10
Source File: test_keras.py From coremltools with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_unsupported_variational_deconv(self): from keras.layers import Input, Lambda, Convolution2D, Flatten, Dense x = Input(shape=(8, 8, 3)) conv_1 = Convolution2D(4, 2, 2, border_mode="same", activation="relu")(x) flat = Flatten()(conv_1) hidden = Dense(10, activation="relu")(flat) z_mean = Dense(10)(hidden) z_log_var = Dense(10)(hidden) def sampling(args): z_mean, z_log_var = args return z_mean + z_log_var z = Lambda(sampling, output_shape=(10,))([z_mean, z_log_var]) model = Model([x], [z]) spec = keras.convert(model, ["input"], ["output"]).get_spec()
Example #11
Source File: models.py From DeepTL-Lane-Change-Classification with MIT License | 6 votes |
def build_cnn_to_lstm_model(self, input_shape, optimizer=Adam(lr=1e-6, decay=1e-5)): model = Sequential() model.add(TimeDistributed(Convolution2D(16, 3, 3), input_shape=input_shape)) model.add(TimeDistributed(Activation('relu'))) model.add(TimeDistributed(Convolution2D(16, 3, 3))) model.add(TimeDistributed(Activation('relu'))) model.add(TimeDistributed(MaxPooling2D(pool_size=(2, 2)))) model.add(TimeDistributed(Dropout(0.2))) model.add(TimeDistributed(Flatten())) model.add(TimeDistributed(Dense(200))) model.add(TimeDistributed(Dense(50, name="first_dense"))) model.add(LSTM(20, return_sequences=False, name="lstm_layer")) model.add(Dense(2, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer=optimizer) self.model = model
Example #12
Source File: mnist.py From keras-examples with MIT License | 6 votes |
def build_cnn(input_shape, nb_filters, filter_size, pool_size): model = Sequential() model.add(Convolution2D(nb_filters, filter_size[0], filter_size[1], border_mode='valid', input_shape=input_shape)) model.add(Activation('relu')) model.add(Convolution2D(nb_filters, filter_size[0], filter_size[1])) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=pool_size)) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(128)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(nb_classes)) model.add(Activation('softmax')) return model
Example #13
Source File: dcn_resnet.py From sam with MIT License | 6 votes |
def identity_block(input_tensor, kernel_size, filters, stage, block): nb_filter1, nb_filter2, nb_filter3 = filters bn_axis = 1 conv_name_base = 'res' + str(stage) + block + '_branch' bn_name_base = 'bn' + str(stage) + block + '_branch' x = Convolution2D(nb_filter1, 1, 1, name=conv_name_base + '2a')(input_tensor) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2a')(x) x = Activation('relu')(x) x = Convolution2D(nb_filter2, kernel_size, kernel_size, border_mode='same', name=conv_name_base + '2b')(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2b')(x) x = Activation('relu')(x) x = Convolution2D(nb_filter3, 1, 1, name=conv_name_base + '2c')(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2c')(x) x = merge([x, input_tensor], mode='sum') x = Activation('relu')(x) return x
Example #14
Source File: networks.py From VizDoom-Keras-RL with MIT License | 6 votes |
def a2c_lstm(input_shape, action_size, value_size, learning_rate): """Actor and Critic Network share convolution layers with LSTM """ state_input = Input(shape=(input_shape)) # 4x64x64x3 x = TimeDistributed(Convolution2D(32, 8, 8, subsample=(4,4), activation='relu'))(state_input) x = TimeDistributed(Convolution2D(64, 4, 4, subsample=(2,2), activation='relu'))(x) x = TimeDistributed(Convolution2D(64, 3, 3, activation='relu'))(x) x = TimeDistributed(Flatten())(x) x = LSTM(512, activation='tanh')(x) # Actor Stream actor = Dense(action_size, activation='softmax')(x) # Critic Stream critic = Dense(value_size, activation='linear')(x) model = Model(input=state_input, output=[actor, critic]) adam = Adam(lr=learning_rate, clipnorm=1.0) model.compile(loss=['categorical_crossentropy', 'mse'], optimizer=adam, loss_weights=[1., 1.]) return model
Example #15
Source File: training.py From deep_complex_networks with MIT License | 6 votes |
def learnConcatRealImagBlock(I, filter_size, featmaps, stage, block, convArgs, bnArgs, d): """Learn initial imaginary component for input.""" conv_name_base = 'res'+str(stage)+block+'_branch' bn_name_base = 'bn' +str(stage)+block+'_branch' O = BatchNormalization(name=bn_name_base+'2a', **bnArgs)(I) O = Activation(d.act)(O) O = Convolution2D(featmaps[0], filter_size, name = conv_name_base+'2a', padding = 'same', kernel_initializer = 'he_normal', use_bias = False, kernel_regularizer = l2(0.0001))(O) O = BatchNormalization(name=bn_name_base+'2b', **bnArgs)(O) O = Activation(d.act)(O) O = Convolution2D(featmaps[1], filter_size, name = conv_name_base+'2b', padding = 'same', kernel_initializer = 'he_normal', use_bias = False, kernel_regularizer = l2(0.0001))(O) return O
Example #16
Source File: dcn_resnet.py From sam with MIT License | 6 votes |
def identity_block_atrous(input_tensor, kernel_size, filters, stage, block, atrous_rate=(2, 2)): nb_filter1, nb_filter2, nb_filter3 = filters bn_axis = 1 conv_name_base = 'res' + str(stage) + block + '_branch' bn_name_base = 'bn' + str(stage) + block + '_branch' x = Convolution2D(nb_filter1, 1, 1, name=conv_name_base + '2a')(input_tensor) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2a')(x) x = Activation('relu')(x) x = AtrousConvolution2D(nb_filter2, kernel_size, kernel_size, atrous_rate=atrous_rate, border_mode='same', name=conv_name_base + '2b')(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2b')(x) x = Activation('relu')(x) x = Convolution2D(nb_filter3, 1, 1, name=conv_name_base + '2c')(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2c')(x) x = merge([x, input_tensor], mode='sum') x = Activation('relu')(x) return x
Example #17
Source File: a3c_model.py From async-rl with MIT License | 6 votes |
def build_policy_and_value_networks(num_actions, agent_history_length, resized_width, resized_height): with tf.device("/cpu:0"): state = tf.placeholder("float", [None, agent_history_length, resized_width, resized_height]) inputs = Input(shape=(agent_history_length, resized_width, resized_height,)) shared = Convolution2D(name="conv1", nb_filter=16, nb_row=8, nb_col=8, subsample=(4,4), activation='relu', border_mode='same')(inputs) shared = Convolution2D(name="conv2", nb_filter=32, nb_row=4, nb_col=4, subsample=(2,2), activation='relu', border_mode='same')(shared) shared = Flatten()(shared) shared = Dense(name="h1", output_dim=256, activation='relu')(shared) action_probs = Dense(name="p", output_dim=num_actions, activation='softmax')(shared) state_value = Dense(name="v", output_dim=1, activation='linear')(shared) policy_network = Model(input=inputs, output=action_probs) value_network = Model(input=inputs, output=state_value) p_params = policy_network.trainable_weights v_params = value_network.trainable_weights p_out = policy_network(state) v_out = value_network(state) return state, p_out, v_out, p_params, v_params
Example #18
Source File: DQN.py From Intelligent-Projects-Using-Python with MIT License | 6 votes |
def build_model(self): states_in = Input(shape=self.num_states,name='states_in') x = Convolution2D(32,(8,8),strides=(4,4),activation='relu')(states_in) x = Convolution2D(64,(4,4), strides=(2,2), activation='relu')(x) x = Convolution2D(64,(3,3), strides=(1,1), activation='relu')(x) x = Flatten(name='flattened')(x) x = Dense(512,activation='relu')(x) x = Dense(self.num_actions,activation="linear")(x) model = Model(inputs=states_in, outputs=x) self.opt = optimizers.Adam(lr=learning_rate, beta_1=0.9, beta_2=0.999, epsilon=None,decay=0.0, amsgrad=False) model.compile(loss=keras.losses.mse,optimizer=self.opt) plot_model(model,to_file='model_architecture.png',show_shapes=True) return model # Train function
Example #19
Source File: networks.py From VizDoom-Keras-RL with MIT License | 6 votes |
def drqn(input_shape, action_size, learning_rate): model = Sequential() model.add(TimeDistributed(Convolution2D(32, 8, 8, subsample=(4,4), activation='relu'), input_shape=(input_shape))) model.add(TimeDistributed(Convolution2D(64, 4, 4, subsample=(2,2), activation='relu'))) model.add(TimeDistributed(Convolution2D(64, 3, 3, activation='relu'))) model.add(TimeDistributed(Flatten())) # Use all traces for training #model.add(LSTM(512, return_sequences=True, activation='tanh')) #model.add(TimeDistributed(Dense(output_dim=action_size, activation='linear'))) # Use last trace for training model.add(LSTM(512, activation='tanh')) model.add(Dense(output_dim=action_size, activation='linear')) adam = Adam(lr=learning_rate) model.compile(loss='mse',optimizer=adam) return model
Example #20
Source File: squeezenet.py From Model-Playgrounds with MIT License | 6 votes |
def fire_module(x, fire_id, squeeze=16, expand=64): s_id = 'fire' + str(fire_id) + '/' if K.image_data_format() == 'channels_first': channel_axis = 1 else: channel_axis = 3 x = Convolution2D(squeeze, (1, 1), padding='valid', name=s_id + sq1x1)(x) x = Activation('relu', name=s_id + relu + sq1x1)(x) left = Convolution2D(expand, (1, 1), padding='valid', name=s_id + exp1x1)(x) left = Activation('relu', name=s_id + relu + exp1x1)(left) right = Convolution2D(expand, (3, 3), padding='same', name=s_id + exp3x3)(x) right = Activation('relu', name=s_id + relu + exp3x3)(right) x = concatenate([left, right], axis=channel_axis, name=s_id + 'concat') return x # Original SqueezeNet from paper.
Example #21
Source File: dcn_resnet.py From sam with MIT License | 6 votes |
def conv_block_atrous(input_tensor, kernel_size, filters, stage, block, atrous_rate=(2, 2)): nb_filter1, nb_filter2, nb_filter3 = filters bn_axis = 1 conv_name_base = 'res' + str(stage) + block + '_branch' bn_name_base = 'bn' + str(stage) + block + '_branch' x = Convolution2D(nb_filter1, 1, 1, name=conv_name_base + '2a')(input_tensor) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2a')(x) x = Activation('relu')(x) x = AtrousConvolution2D(nb_filter2, kernel_size, kernel_size, border_mode='same', atrous_rate=atrous_rate, name=conv_name_base + '2b')(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2b')(x) x = Activation('relu')(x) x = Convolution2D(nb_filter3, 1, 1, name=conv_name_base + '2c')(x) x = BatchNormalization(axis=bn_axis, name=bn_name_base + '2c')(x) shortcut = Convolution2D(nb_filter3, 1, 1, name=conv_name_base + '1')(input_tensor) shortcut = BatchNormalization(axis=bn_axis, name=bn_name_base + '1')(shortcut) x = merge([x, shortcut], mode='sum') x = Activation('relu')(x) return x
Example #22
Source File: networks.py From VizDoom-Keras-RL with MIT License | 6 votes |
def value_distribution_network(input_shape, num_atoms, action_size, learning_rate): """Model Value Distribution With States as inputs and output Probability Distributions for all Actions """ state_input = Input(shape=(input_shape)) cnn_feature = Convolution2D(32, 8, 8, subsample=(4,4), activation='relu')(state_input) cnn_feature = Convolution2D(64, 4, 4, subsample=(2,2), activation='relu')(cnn_feature) cnn_feature = Convolution2D(64, 3, 3, activation='relu')(cnn_feature) cnn_feature = Flatten()(cnn_feature) cnn_feature = Dense(512, activation='relu')(cnn_feature) distribution_list = [] for i in range(action_size): distribution_list.append(Dense(num_atoms, activation='softmax')(cnn_feature)) model = Model(input=state_input, output=distribution_list) adam = Adam(lr=learning_rate) model.compile(loss='categorical_crossentropy',optimizer=adam) return model
Example #23
Source File: FEC.py From FECNet with MIT License | 5 votes |
def conv_block(input, nb_filter, dropout_rate=None, weight_decay=1E-4): x = Activation('relu')(input) x = Convolution2D(nb_filter, (3, 3), kernel_initializer="he_uniform", padding="same", use_bias=False, kernel_regularizer=l2(weight_decay))(x) if dropout_rate is not None: x = Dropout(dropout_rate)(x) return x
Example #24
Source File: models.py From keras_BEGAN with MIT License | 5 votes |
def convolution_image_for_decoding(x, filters, upsample=None, name=None, n_layer=2): for i in range(1, n_layer+1): x = Convolution2D(filters, (3, 3), activation="elu", padding="same", name="%s/Conv%d" % (name, i))(x) if upsample: x = UpSampling2D()(x) return x
Example #25
Source File: networks.py From VizDoom-Keras-RL with MIT License | 5 votes |
def dqn(input_shape, action_size, learning_rate): model = Sequential() model.add(Convolution2D(32, 8, 8, subsample=(4,4), activation='relu', input_shape=(input_shape))) model.add(Convolution2D(64, 4, 4, subsample=(2,2), activation='relu')) model.add(Convolution2D(64, 3, 3, activation='relu')) model.add(Flatten()) model.add(Dense(output_dim=512, activation='relu')) model.add(Dense(output_dim=action_size, activation='linear')) adam = Adam(lr=learning_rate) model.compile(loss='mse',optimizer=adam) return model
Example #26
Source File: models.py From keras_BEGAN with MIT License | 5 votes |
def build_decoder(config: BEGANConfig, name): """ generator and decoder( of discriminator) have same network structure, but don't share weights. This function takes different input layer, flow another network, and return different output layer. """ n_filters = config.n_filters n_layer = config.n_layer_in_conv dx = input_z = Input((64, )) dx = Dense((8*8*n_filters), activation='linear', name="%s/Dense" % name)(dx) dx = Reshape((8, 8, n_filters))(dx) # output: (N, 16, 16, n_filters) dx = convolution_image_for_decoding(dx, n_filters, upsample=True, name="%s/L1" % name, n_layer=n_layer) # output: (N, 32, 32, n_filters) dx = convolution_image_for_decoding(dx, n_filters, upsample=True, name="%s/L2" % name, n_layer=n_layer) # output: (N, 64, 64, n_filters) dx = convolution_image_for_decoding(dx, n_filters, upsample=True, name="%s/L3" % name, n_layer=n_layer) # output: (N, 64, 64, n_filters) dx = convolution_image_for_decoding(dx, n_filters, upsample=False, name="%s/L4" % name, n_layer=n_layer) # output: (N, 64, 64, 3) image_output = Convolution2D(3, (3, 3), padding="same", activation="linear", name="%s/FinalConv" % name)(dx) decoder = Container(input_z, image_output, name=name) return decoder
Example #27
Source File: networks.py From VizDoom-Keras-RL with MIT License | 5 votes |
def policy_reinforce(input_shape, action_size, learning_rate): """ Model for REINFORCE """ model = Sequential() model.add(Convolution2D(32, 8, 8, subsample=(4,4), input_shape=(input_shape))) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Convolution2D(64, 4, 4, subsample=(2,2))) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Convolution2D(64, 3, 3)) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Flatten()) model.add(Dense(64)) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Dense(32)) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Dense(output_dim=action_size, activation='softmax')) adam = Adam(lr=learning_rate) model.compile(loss='categorical_crossentropy',optimizer=adam) return model
Example #28
Source File: networks.py From VizDoom-Keras-RL with MIT License | 5 votes |
def critic_network(input_shape, value_size, learning_rate): """Critic Network for A2C """ model = Sequential() model.add(Convolution2D(32, 8, 8, subsample=(4,4), input_shape=(input_shape))) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Convolution2D(64, 4, 4, subsample=(2,2))) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Convolution2D(64, 3, 3)) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Flatten()) model.add(Dense(output_dim=64)) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Dense(output_dim=32)) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Dense(output_dim=value_size, activation='linear')) adam = Adam(lr=learning_rate) model.compile(loss='mse',optimizer=adam) return model
Example #29
Source File: networks.py From VizDoom-Keras-RL with MIT License | 5 votes |
def actor_network(input_shape, action_size, learning_rate): """Actor Network for A2C """ model = Sequential() model.add(Convolution2D(32, 8, 8, subsample=(4,4), input_shape=(input_shape))) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Convolution2D(64, 4, 4, subsample=(2,2))) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Convolution2D(64, 3, 3)) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Flatten()) model.add(Dense(output_dim=64)) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Dense(output_dim=32)) model.add(BatchNormalization()) model.add(Activation('relu')) model.add(Dense(output_dim=action_size, activation='softmax')) adam = Adam(lr=learning_rate) model.compile(loss='categorical_crossentropy',optimizer=adam) return model
Example #30
Source File: CNN_LSTM.py From DeepLearning-OCR with Apache License 2.0 | 5 votes |
def build_CNN_LSTM(channels, width, height, lstm_output_size, nb_classes): model = Sequential() # 1 conv model.add(Convolution2D(64, 3, 3, border_mode='same', activation='relu', input_shape=(channels, height, width))) model.add(BatchNormalization(mode=0, axis=1)) # 2 conv model.add(Convolution2D(64, 3, 3, border_mode='same', activation='relu')) model.add(BatchNormalization(mode=0, axis=1)) model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2))) # 3 conv model.add(Convolution2D(128, 3, 3, border_mode='same', activation='relu')) model.add(BatchNormalization(mode=0, axis=1)) # 4 conv model.add(Convolution2D(128, 3, 3, border_mode='same', activation='relu')) model.add(BatchNormalization(mode=0, axis=1)) model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2))) # flaten a = model.add(Flatten()) # 1 dense model.add(Dense(512, activation='relu')) model.add(BatchNormalization()) model.add(Dropout(0.5)) # 2 dense model.add(Dense(512, activation='relu')) model.add(BatchNormalization()) model.add(Dropout(0.5)) # lstm model.add(RepeatVector(lstm_output_size)) model.add(LSTM(512, return_sequences=True)) model.add(TimeDistributed(Dropout(0.5))) model.add(TimeDistributed(Dense(nb_classes, activation='softmax'))) model.summary() model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=[categorical_accuracy_per_sequence], sample_weight_mode='temporal' ) return model