Python keras.layers.Bidirectional() Examples
The following are 30
code examples of keras.layers.Bidirectional().
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: model.py From CCKS2019-Chinese-Clinical-NER with MIT License | 7 votes |
def __build_model(self): model = Sequential() embedding_layer = Embedding(input_dim=len(self.vocab) + 1, output_dim=self.embedding_dim, weights=[self.embedding_mat], trainable=False) model.add(embedding_layer) bilstm_layer = Bidirectional(LSTM(units=256, return_sequences=True)) model.add(bilstm_layer) model.add(TimeDistributed(Dense(256, activation="relu"))) crf_layer = CRF(units=len(self.tags), sparse_target=True) model.add(crf_layer) model.compile(optimizer="adam", loss=crf_loss, metrics=[crf_viterbi_accuracy]) model.summary() return model
Example #2
Source File: lstm.py From speech-music-detection with MIT License | 6 votes |
def create_lstm(hidden_units=[50], dropout=0.05, bidirectional=True): model = Sequential() if bidirectional: i = 0 for unit in hidden_units: if i == 0: model.add(Bidirectional(LSTM(unit, dropout=dropout, return_sequences=True), input_shape=(None, config.N_MELS))) else: model.add(Bidirectional(LSTM(unit, dropout=dropout, return_sequences=True))) i += 1 else: i = 0 for unit in hidden_units: if i == 0: model.add(LSTM(unit, dropout=dropout, return_sequences=True), input_shape=(None, config.N_MELS)) else: model.add(LSTM(unit, dropout=dropout, return_sequences=True)) i += 1 model.add(TimeDistributed(Dense(config.CLASSES, activation='sigmoid'))) return model
Example #3
Source File: emoji2vec.py From Sarcasm-Detection with MIT License | 6 votes |
def emoji2vec_model(embedding_matrix, emoji_vocab_size, word_vocab_size): emoji_model = Sequential() emoji_model.add(Embedding(emoji_vocab_size + 1, embedding_dim, input_length=1, trainable=True)) emoji_model.add(Reshape((embedding_dim,))) word_model = Sequential() word_model.add(Embedding(word_vocab_size + 1, embedding_dim, weights=[embedding_matrix], input_length=maximum_length, trainable=False)) word_model.add(Bidirectional(LSTM(embedding_dim, dropout=0.5), merge_mode='sum')) model = Sequential() model.add(Merge([emoji_model, word_model], mode='concat')) model.add(Dense(embedding_dim * 2, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(2, activation='softmax')) return emoji_model, word_model, model # Solely based on emoji descriptions, obtain the emoji2vec representations for all possible emojis
Example #4
Source File: baseline.py From MELD with GNU General Public License v3.0 | 6 votes |
def get_bimodal_model(self): # Modality specific hyperparameters self.epochs = 100 self.batch_size = 10 # Modality specific parameters self.embedding_dim = self.train_x.shape[2] print("Creating Model...") inputs = Input(shape=(self.sequence_length, self.embedding_dim), dtype='float32') masked = Masking(mask_value =0)(inputs) lstm = Bidirectional(LSTM(300, activation='tanh', return_sequences = True, dropout=0.4), name="utter")(masked) output = TimeDistributed(Dense(self.classes,activation='softmax'))(lstm) model = Model(inputs, output) return model
Example #5
Source File: baseline.py From MELD with GNU General Public License v3.0 | 6 votes |
def get_audio_model(self): # Modality specific hyperparameters self.epochs = 100 self.batch_size = 50 # Modality specific parameters self.embedding_dim = self.train_x.shape[2] print("Creating Model...") inputs = Input(shape=(self.sequence_length, self.embedding_dim), dtype='float32') masked = Masking(mask_value =0)(inputs) lstm = Bidirectional(LSTM(300, activation='tanh', return_sequences = True, dropout=0.4))(masked) lstm = Bidirectional(LSTM(300, activation='tanh', return_sequences = True, dropout=0.4), name="utter")(lstm) output = TimeDistributed(Dense(self.classes,activation='softmax'))(lstm) model = Model(inputs, output) return model
Example #6
Source File: cnn_rnn_crf.py From Jtyoui with MIT License | 6 votes |
def create_model(): inputs = Input(shape=(length,), dtype='int32', name='inputs') embedding_1 = Embedding(len(vocab), EMBED_DIM, input_length=length, mask_zero=True)(inputs) bilstm = Bidirectional(LSTM(EMBED_DIM // 2, return_sequences=True))(embedding_1) bilstm_dropout = Dropout(DROPOUT_RATE)(bilstm) embedding_2 = Embedding(len(vocab), EMBED_DIM, input_length=length)(inputs) con = Conv1D(filters=FILTERS, kernel_size=2 * HALF_WIN_SIZE + 1, padding='same')(embedding_2) con_d = Dropout(DROPOUT_RATE)(con) dense_con = TimeDistributed(Dense(DENSE_DIM))(con_d) rnn_cnn = concatenate([bilstm_dropout, dense_con], axis=2) dense = TimeDistributed(Dense(len(chunk_tags)))(rnn_cnn) crf = CRF(len(chunk_tags), sparse_target=True) crf_output = crf(dense) model = Model(input=[inputs], output=[crf_output]) model.compile(loss=crf.loss_function, optimizer=Adam(), metrics=[crf.accuracy]) return model
Example #7
Source File: bi_lstm_att.py From nlp_toolkit with MIT License | 6 votes |
def forward(self): model_input = Input(shape=(self.maxlen,), dtype='int32', name='token') x = Token_Embedding(model_input, self.nb_tokens, self.embedding_dim, self.token_embeddings, True, self.maxlen, self.embed_dropout_rate, name='token_embeddings') x = Activation('tanh')(x) # skip-connection from embedding to output eases gradient-flow and allows access to lower-level features # ordering of the way the merge is done is important for consistency with the pretrained model lstm_0_output = Bidirectional( LSTM(self.rnn_size, return_sequences=True), name="bi_lstm_0")(x) lstm_1_output = Bidirectional( LSTM(self.rnn_size, return_sequences=True), name="bi_lstm_1")(lstm_0_output) x = concatenate([lstm_1_output, lstm_0_output, x], name='concatenate') x = self.attention_layer(x) if self.return_attention: x, weights = x outputs = tc_output_logits(x, self.nb_classes, self.final_dropout_rate) if self.return_attention: outputs.append(weights) outputs = concatenate(outputs, axis=-1, name='outputs') self.model = Model(inputs=model_input, outputs=outputs, name="Bi_LSTM_Attention")
Example #8
Source File: models.py From DigiX_HuaWei_Population_Age_Attribution_Predict with MIT License | 6 votes |
def CapsuleNet(n_capsule = 10, n_routings = 5, capsule_dim = 16, n_recurrent=100, dropout_rate=0.2, l2_penalty=0.0001): K.clear_session() inputs = Input(shape=(170,)) x = Embedding(21099, 300, trainable=True)(inputs) x = SpatialDropout1D(dropout_rate)(x) x = Bidirectional( CuDNNGRU(n_recurrent, return_sequences=True, kernel_regularizer=l2(l2_penalty), recurrent_regularizer=l2(l2_penalty)))(x) x = PReLU()(x) x = Capsule( num_capsule=n_capsule, dim_capsule=capsule_dim, routings=n_routings, share_weights=True)(x) x = Flatten(name = 'concatenate')(x) x = Dropout(dropout_rate)(x) # fc = Dense(128, activation='sigmoid')(x) outputs = Dense(6, activation='softmax')(x) model = Model(inputs=inputs, outputs=outputs) model.compile(loss='categorical_crossentropy', optimizer='nadam', metrics=['accuracy']) return model
Example #9
Source File: models.py From DigiX_HuaWei_Population_Age_Attribution_Predict with MIT License | 6 votes |
def CapsuleNet_v2(n_capsule = 10, n_routings = 5, capsule_dim = 16, n_recurrent=100, dropout_rate=0.2, l2_penalty=0.0001): K.clear_session() inputs = Input(shape=(200,)) x = Embedding(20000, 300, trainable=True)(inputs) x = SpatialDropout1D(dropout_rate)(x) x = Bidirectional( CuDNNGRU(n_recurrent, return_sequences=True, kernel_regularizer=l2(l2_penalty), recurrent_regularizer=l2(l2_penalty)))(x) x = PReLU()(x) x = Capsule( num_capsule=n_capsule, dim_capsule=capsule_dim, routings=n_routings, share_weights=True)(x) x = Flatten(name = 'concatenate')(x) x = Dropout(dropout_rate)(x) # fc = Dense(128, activation='sigmoid')(x) outputs = Dense(6, activation='softmax')(x) model = Model(inputs=inputs, outputs=outputs) model.compile(loss='categorical_crossentropy', optimizer='nadam', metrics=['accuracy']) return model
Example #10
Source File: lstm_bilstm.py From SSAN-self-attention-sentiment-analysis-classification with Apache License 2.0 | 6 votes |
def create_BiLSTM(wordvecs, lstm_dim=300, output_dim=2, dropout=.5, weights=None, train=True): model = Sequential() if weights != None: model.add(Embedding(len(wordvecs)+1, len(wordvecs['the']), weights=[weights], trainable=train)) else: model.add(Embedding(len(wordvecs)+1, len(wordvecs['the']), trainable=train)) model.add(Dropout(dropout)) model.add(Bidirectional(LSTM(lstm_dim))) model.add(Dropout(dropout)) model.add(Dense(output_dim, activation='softmax')) if output_dim == 2: model.compile('adam', 'binary_crossentropy', metrics=['accuracy']) else: model.compile('adam', 'categorical_crossentropy', metrics=['accuracy']) return model
Example #11
Source File: keras_bert_classify_bi_lstm.py From nlp_xiaojiang with MIT License | 6 votes |
def build_model_bilstm_single(self): if args.use_lstm: if args.use_cudnn_cell: layer_cell = CuDNNLSTM else: layer_cell = LSTM else: if args.use_cudnn_cell: layer_cell = CuDNNGRU else: layer_cell = GRU # bert embedding bert_inputs, bert_output = KerasBertEmbedding().bert_encode() # Bi-LSTM x = Bidirectional(layer_cell(units=args.units, return_sequences=args.return_sequences, kernel_regularizer=regularizers.l2(args.l2 * 0.1), recurrent_regularizer=regularizers.l2(args.l2) ))(bert_output) x = Dropout(args.keep_prob)(x) x = Flatten()(x) # 最后就是softmax dense_layer = Dense(args.label, activation=args.activation)(x) output_layers = [dense_layer] self.model = Model(bert_inputs, output_layers)
Example #12
Source File: models.py From delft with Apache License 2.0 | 6 votes |
def mix1(maxlen, embed_size, recurrent_units, dropout_rate, recurrent_dropout_rate, dense_size, nb_classes): #input_layer = Input(shape=(maxlen,)) input_layer = Input(shape=(maxlen, embed_size), ) #embedding_layer = Embedding(max_features, embed_size, # weights=[embedding_matrix], trainable=False)(input_layer) x = Bidirectional(GRU(recurrent_units, return_sequences=True, dropout=dropout_rate, recurrent_dropout=recurrent_dropout_rate))(input_layer) x = Dropout(dropout_rate)(x) x = Bidirectional(LSTM(recurrent_units, return_sequences=True, dropout=dropout_rate, recurrent_dropout=recurrent_dropout_rate))(x) x_a = GlobalMaxPool1D()(x) x_b = GlobalAveragePooling1D()(x) x = concatenate([x_a,x_b]) x = Dense(dense_size, activation="relu")(x) output_layer = Dense(nb_classes, activation="sigmoid")(x) model = Model(inputs=input_layer, outputs=output_layer) model.summary() model.compile(loss='binary_crossentropy', optimizer=RMSprop(clipvalue=1, clipnorm=1), #optimizer='adam', metrics=['accuracy']) return model # DPCNN
Example #13
Source File: lstm_bilstm.py From SSAN-self-attention-sentiment-analysis-classification with Apache License 2.0 | 6 votes |
def print_results(bi, file, out_file, file_type): names, results, std_devs, dim = test_embeddings(bi, file, file_type) rr = [[u'{0:.3f} \u00B1{1:.3f}'.format(r, s) for r, s in zip(result, std_dev)] for result, std_dev in zip(results, std_devs)] table_data = [[name] + result for name, result in zip(names, rr)] table = tabulate.tabulate(table_data, headers=['dataset', 'acc', 'prec', 'rec', 'f1'], tablefmt='simple', floatfmt='.3f') if out_file: with open(out_file, 'a') as f: f.write('\n') if bi: f.write('+++Bidirectional LSTM+++\n') else: f.write('+++LSTM+++\n') f.write(table) f.write('\n') else: print() if bi: print('Bidirectional LSTM') else: print('LSTM') print(table)
Example #14
Source File: models.py From delft with Apache License 2.0 | 6 votes |
def bidLstm(maxlen, embed_size, recurrent_units, dropout_rate, recurrent_dropout_rate, dense_size, nb_classes): #inp = Input(shape=(maxlen, )) input_layer = Input(shape=(maxlen, embed_size), ) #x = Embedding(max_features, embed_size, weights=[embedding_matrix], trainable=False)(inp) x = Bidirectional(LSTM(recurrent_units, return_sequences=True, dropout=dropout_rate, recurrent_dropout=dropout_rate))(input_layer) #x = Dropout(dropout_rate)(x) x = Attention(maxlen)(x) #x = AttentionWeightedAverage(maxlen)(x) #print('len(x):', len(x)) #x = AttentionWeightedAverage(maxlen)(x) x = Dense(dense_size, activation="relu")(x) x = Dropout(dropout_rate)(x) x = Dense(nb_classes, activation="sigmoid")(x) model = Model(inputs=input_layer, outputs=x) model.summary() model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) return model # conv+GRU with embeddings
Example #15
Source File: core.py From bi-lstm-crf with Apache License 2.0 | 6 votes |
def __build_model(self, emb_matrix=None): word_input = Input(shape=(None,), dtype='int32', name="word_input") word_emb = Embedding(self.vocab_size + 1, self.embed_dim, weights=[emb_matrix] if emb_matrix is not None else None, trainable=True if emb_matrix is None else False, name='word_emb')(word_input) bilstm_output = Bidirectional(LSTM(self.bi_lstm_units // 2, return_sequences=True))(word_emb) bilstm_output = Dropout(self.dropout_rate)(bilstm_output) output = Dense(self.chunk_size + 1, kernel_initializer="he_normal")(bilstm_output) output = CRF(self.chunk_size + 1, sparse_target=self.sparse_target)(output) model = Model([word_input], [output]) parallel_model = model if self.num_gpu > 1: parallel_model = multi_gpu_model(model, gpus=self.num_gpu) parallel_model.compile(optimizer=self.optimizer, loss=crf_loss, metrics=[crf_accuracy]) return model, parallel_model
Example #16
Source File: keras_bert_ner_bi_lstm.py From nlp_xiaojiang with MIT License | 6 votes |
def build_model_bilstm_layers(self): if args.use_lstm: if args.use_cudnn_cell: layer_cell = CuDNNLSTM else: layer_cell = LSTM else: if args.use_cudnn_cell: layer_cell = CuDNNGRU else: layer_cell = GRU # bert embedding bert_inputs, bert_output = KerasBertEmbedding().bert_encode() # Bi-LSTM x = Bidirectional(layer_cell(units=args.units, return_sequences=args.return_sequences, ))(bert_output) # 最后 x = TimeDistributed(Dropout(self.keep_prob))(x) dense_layer = Dense(args.max_seq_len, activation=args.activation)(x) crf = CRF(args.label, sparse_target=False, learn_mode="join", test_mode='viterbi') output_layers = crf(dense_layer) self.model = Model(bert_inputs, output_layers) self.model.summary(132)
Example #17
Source File: lstm_model.py From zh-segmentation-keras with MIT License | 6 votes |
def create_model(maxlen, chars, word_size, infer=False): """ :param infer: :param maxlen: :param chars: :param word_size: :return: """ sequence = Input(shape=(maxlen,), dtype='int32') embedded = Embedding(len(chars) + 1, word_size, input_length=maxlen, mask_zero=True)(sequence) blstm = Bidirectional(LSTM(64, return_sequences=True), merge_mode='sum')(embedded) output = TimeDistributed(Dense(5, activation='softmax'))(blstm) model = Model(input=sequence, output=output) if not infer: model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) return model
Example #18
Source File: model.py From polyaxon-examples with Apache License 2.0 | 5 votes |
def train(max_features, maxlen, num_nodes, dropout, optimizer, log_learning_rate, batch_size, epochs): model = Sequential() model.add(Embedding(max_features, 128, input_length=maxlen)) model.add(Bidirectional(LSTM(num_nodes))) model.add(Dropout(dropout)) model.add(Dense(1, activation='sigmoid')) model.compile(OPTIMIZERS[optimizer](lr=10 ** log_learning_rate), loss='binary_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, validation_data=[x_test, y_test], callbacks=[ EarlyStopping( monitor='val_loss', min_delta=1e-4, patience=3, verbose=1, mode='auto'), PolyaxonKerasCallback(), PolyaxonKerasModelCheckpoint(), TensorBoard(log_dir=tracking.get_tensorboard_path(), histogram_freq=1), ModelCheckpoint(tracking.get_model_path()) ]) return model.evaluate(x_test, y_test)[1]
Example #19
Source File: TrajectoryTools.py From TrajLib with Apache License 2.0 | 5 votes |
def tr_net_b2(input_shape_speed, word_to_vec_map_speed, word_to_index_speed, input_shape_bearing, word_to_vec_map_bearing, word_to_index_bearing, no_classes=11): speed = Input(shape=input_shape_speed, dtype=np.int32) embedding_layer = pre_trained_embedding_layer(word_to_vec_map_speed, word_to_index_speed) embeddings = embedding_layer(speed) X = Bidirectional(LSTM(128, return_sequences=True))(embeddings) X = Dropout(0.5)(X) X = Bidirectional(LSTM(128))(X) X = Dropout(0.5)(X) X = Dense(32)(X) X = Dropout(0.5)(X) X = Dense(16)(X) bearing = Input(shape=input_shape_bearing, dtype=np.int32) embedding_layer_bearing = pre_trained_embedding_layer(word_to_vec_map_bearing, word_to_index_bearing) embeddings_bearing = embedding_layer_bearing(bearing) B = Bidirectional(LSTM(128, return_sequences=True))(embeddings_bearing) B = Dropout(0.5)(B) B = Bidirectional(LSTM(128))(B) B = Dropout(0.5)(B) B = Dense(32)(B) B = Dropout(0.5)(B) B = Dense(16)(B) X=Concatenate()([X,B]) X = Dense(no_classes)(X) X = Activation('softmax')(X) model = Model(inputs=[speed,bearing],outputs= X) return model
Example #20
Source File: TrajectoryTools.py From TrajLib with Apache License 2.0 | 5 votes |
def tr_net_b3(input_shape_speed, word_to_vec_map_speed, word_to_index_speed, input_shape_bearing, word_to_vec_map_bearing, word_to_index_bearing, no_classes=11): speed = Input(shape=input_shape_speed, dtype=np.int32) embedding_layer = pre_trained_embedding_layer(word_to_vec_map_speed, word_to_index_speed) embeddings = embedding_layer(speed) X = Bidirectional(LSTM(128, return_sequences=True))(embeddings) X = Dropout(0.5)(X) X = Bidirectional(LSTM(128))(X) X = Dropout(0.5)(X) X = Dense(32, kernel_regularizer=regularizers.l2(0.001), activity_regularizer=regularizers.l1(0.001))(X) X = Dropout(0.5)(X) X = Dense(16, kernel_regularizer=regularizers.l2(0.001), activity_regularizer=regularizers.l1(0.001))(X) bearing = Input(shape=input_shape_bearing, dtype=np.int32) embedding_layer_bearing = pre_trained_embedding_layer(word_to_vec_map_bearing, word_to_index_bearing) embeddings_bearing = embedding_layer_bearing(bearing) B = Bidirectional(LSTM(128, return_sequences=True))(embeddings_bearing) B = Dropout(0.5)(B) B = Bidirectional(LSTM(128))(B) B = Dropout(0.5)(B) B = Dense(32, kernel_regularizer=regularizers.l2(0.001), activity_regularizer=regularizers.l1(0.001))(B) B = Dropout(0.5)(B) B = Dense(16, kernel_regularizer=regularizers.l2(0.001), activity_regularizer=regularizers.l1(0.001))(B) X=Concatenate()([X,B]) X = Dense(no_classes)(X) X = Activation('softmax')(X) model = Model(inputs=[speed,bearing],outputs= X) return model
Example #21
Source File: dl_models.py From Sarcasm-Detection with MIT License | 5 votes |
def dnn_options(name): return { 'Standard': standard_dnn_model, 'CNN': cnn_model, 'LSTM': lstm_model, 'GRU': gru_model, 'Bidirectional LSTM': bidirectional_lstm_model, 'CNN + LSTM': cnn_lstm_model, 'Stateless Attention': stateless_attention_model, 'Attention': attention_model, }[name]
Example #22
Source File: models.py From delft with Apache License 2.0 | 5 votes |
def __init__(self, config, ntags=None): # build input, directly feed with word embedding by the data generator word_input = Input(shape=(None, config.word_embedding_size), name='word_input') # build character based embedding char_input = Input(shape=(None, config.max_char_length), dtype='int32', name='char_input') char_embeddings = TimeDistributed(Embedding(input_dim=config.char_vocab_size, output_dim=config.char_embedding_size, mask_zero=True, #embeddings_initializer=RandomUniform(minval=-0.5, maxval=0.5), name='char_embeddings' ))(char_input) chars = TimeDistributed(Bidirectional(LSTM(config.num_char_lstm_units, return_sequences=False)))(char_embeddings) # length of sequence not used for the moment (but used for f1 communication) length_input = Input(batch_shape=(None, 1), dtype='int32', name='length_input') # combine characters and word embeddings x = Concatenate()([word_input, chars]) x = Dropout(config.dropout)(x) x = Bidirectional(GRU(units=config.num_word_lstm_units, return_sequences=True, recurrent_dropout=config.recurrent_dropout))(x) x = Dropout(config.dropout)(x) x = Bidirectional(GRU(units=config.num_word_lstm_units, return_sequences=True, recurrent_dropout=config.recurrent_dropout))(x) x = Dense(config.num_word_lstm_units, activation='tanh')(x) x = Dense(ntags)(x) self.crf = ChainCRF() pred = self.crf(x) self.model = Model(inputs=[word_input, char_input, length_input], outputs=[pred]) self.config = config
Example #23
Source File: models.py From delft with Apache License 2.0 | 5 votes |
def __init__(self, config, ntags=None): # build input, directly feed with word embedding by the data generator word_input = Input(shape=(None, config.word_embedding_size), name='word_input') # build character based embedding char_input = Input(shape=(None, config.max_char_length), dtype='int32', name='char_input') char_embeddings = TimeDistributed(Embedding(input_dim=config.char_vocab_size, output_dim=config.char_embedding_size, #mask_zero=True, #embeddings_initializer=RandomUniform(minval=-0.5, maxval=0.5), name='char_embeddings' ))(char_input) chars = TimeDistributed(Bidirectional(LSTM(config.num_char_lstm_units, return_sequences=False)))(char_embeddings) # length of sequence not used for the moment (but used for f1 communication) length_input = Input(batch_shape=(None, 1), dtype='int32', name='length_input') # combine characters and word embeddings x = Concatenate()([word_input, chars]) x = Dropout(config.dropout)(x) x = Bidirectional(LSTM(units=config.num_word_lstm_units, return_sequences=True, recurrent_dropout=config.recurrent_dropout))(x) x = Dropout(config.dropout)(x) x = Dense(config.num_word_lstm_units, activation='tanh')(x) x = Dense(ntags)(x) self.crf = ChainCRF() pred = self.crf(x) self.model = Model(inputs=[word_input, char_input, length_input], outputs=[pred]) self.config = config
Example #24
Source File: test_topology.py From DeepLearning_Wavelet-LSTM with MIT License | 5 votes |
def test_load_layers(): from keras.layers import ConvLSTM2D, TimeDistributed, Bidirectional, Conv2D, Input from keras.models import Model if K.backend() == 'tensorflow' or K.backend() == 'cntk': inputs = Input(shape=(10, 20, 20, 1)) else: inputs = Input(shape=(10, 1, 20, 20)) td_conv = TimeDistributed(Conv2D(15, (5, 5)))(inputs) bi_convlstm2d = Bidirectional(ConvLSTM2D(10, (3, 3)), merge_mode='concat')(td_conv) model = Model(inputs=inputs, outputs=bi_convlstm2d) weight_value_tuples = [] # TimeDistributed Conv2D layer # use 'channels_first' data format to check that the function is being called correctly for Conv2D # old: (filters, stack_size, kernel_rows, kernel_cols) # new: (kernel_rows, kernel_cols, stack_size, filters) weight_tensor_td_conv_old = list() weight_tensor_td_conv_old.append(np.zeros((15, 1, 5, 5))) weight_tensor_td_conv_old.append(np.zeros((15,))) td_conv_layer = model.layers[1] td_conv_layer.layer.data_format = 'channels_first' weight_tensor_td_conv_new = topology.preprocess_weights_for_loading( td_conv_layer, weight_tensor_td_conv_old, original_keras_version='1') symbolic_weights = td_conv_layer.weights assert (len(symbolic_weights) == len(weight_tensor_td_conv_new)) weight_value_tuples += zip(symbolic_weights, weight_tensor_td_conv_new) # Bidirectional ConvLSTM2D layer # old ConvLSTM2D took a list of 12 weight tensors, returns a list of 3 concatenated larger tensors. weight_tensor_bi_convlstm_old = [] for j in range(2): # bidirectional for i in range(4): weight_tensor_bi_convlstm_old.append(np.zeros((3, 3, 15, 10))) # kernel weight_tensor_bi_convlstm_old.append(np.zeros((3, 3, 10, 10))) # recurrent kernel weight_tensor_bi_convlstm_old.append(np.zeros((10,))) # bias bi_convlstm_layer = model.layers[2] weight_tensor_bi_convlstm_new = topology.preprocess_weights_for_loading( bi_convlstm_layer, weight_tensor_bi_convlstm_old, original_keras_version='1') symbolic_weights = bi_convlstm_layer.weights assert (len(symbolic_weights) == len(weight_tensor_bi_convlstm_new)) weight_value_tuples += zip(symbolic_weights, weight_tensor_bi_convlstm_new) K.batch_set_value(weight_value_tuples) assert np.all(K.eval(model.layers[1].weights[0]) == weight_tensor_td_conv_new[0]) assert np.all(K.eval(model.layers[1].weights[1]) == weight_tensor_td_conv_new[1]) assert np.all(K.eval(model.layers[2].weights[0]) == weight_tensor_bi_convlstm_new[0]) assert np.all(K.eval(model.layers[2].weights[1]) == weight_tensor_bi_convlstm_new[1]) assert np.all(K.eval(model.layers[2].weights[2]) == weight_tensor_bi_convlstm_new[2]) assert np.all(K.eval(model.layers[2].weights[3]) == weight_tensor_bi_convlstm_new[3]) assert np.all(K.eval(model.layers[2].weights[4]) == weight_tensor_bi_convlstm_new[4]) assert np.all(K.eval(model.layers[2].weights[5]) == weight_tensor_bi_convlstm_new[5])
Example #25
Source File: models.py From DeepFMPO with MIT License | 5 votes |
def build_models(inp_shape): # Build the actor inp = Input(inp_shape) hidden_inp = LeakyReLU(0.1)(TimeDistributed(Dense(N_DENSE, activation="linear"))(inp)) hidden = LSTM(N_LSTM, return_sequences=True)(hidden_inp) hidden = Flatten()(hidden) hidden2 = LSTM(N_LSTM, return_sequences=True, go_backwards=True)(hidden_inp) hidden2 = Flatten()(hidden2) inp2 = Input((1,)) hidden = Concatenate()([hidden, hidden2, inp2]) hidden = LeakyReLU(0.1)(Dense(N_DENSE2, activation="linear")(hidden)) out = Dense(n_actions, activation="softmax", activity_regularizer=l2(0.001))(hidden) actor = Model([inp,inp2], out) actor.compile(loss=maximization, optimizer=Adam(0.0005)) # Build the critic inp = Input(inp_shape) hidden = LeakyReLU(0.1)(TimeDistributed(Dense(N_DENSE, activation="linear"))(inp)) hidden = Bidirectional(LSTM(2*N_LSTM))(hidden) inp2 = Input((1,)) hidden = Concatenate()([hidden, inp2]) hidden = LeakyReLU(0.1)(Dense(N_DENSE2, activation="linear")(hidden)) out = Dense(1, activation="linear")(hidden) critic = Model([inp,inp2], out) critic.compile(loss="MSE", optimizer=Adam(0.0001)) return actor, critic
Example #26
Source File: models.py From DeepFMPO with MIT License | 5 votes |
def build_models(inp_shape): # Build the actor inp = Input(inp_shape) hidden_inp = LeakyReLU(0.1)(TimeDistributed(Dense(N_DENSE, activation="linear"))(inp)) hidden = LSTM(N_LSTM, return_sequences=True)(hidden_inp) hidden = Flatten()(hidden) hidden2 = LSTM(N_LSTM, return_sequences=True, go_backwards=True)(hidden_inp) hidden2 = Flatten()(hidden2) inp2 = Input((1,)) hidden = Concatenate()([hidden, hidden2, inp2]) hidden = LeakyReLU(0.1)(Dense(N_DENSE2, activation="linear")(hidden)) out = Dense(n_actions, activation="softmax", activity_regularizer=l2(0.001))(hidden) actor = Model([inp,inp2], out) actor.compile(loss=maximization, optimizer=Adam(0.0005)) # Build the critic inp = Input(inp_shape) hidden = LeakyReLU(0.1)(TimeDistributed(Dense(N_DENSE, activation="linear"))(inp)) hidden = Bidirectional(LSTM(2*N_LSTM))(hidden) inp2 = Input((1,)) hidden = Concatenate()([hidden, inp2]) hidden = LeakyReLU(0.1)(Dense(N_DENSE2, activation="linear")(hidden)) out = Dense(1, activation="linear")(hidden) critic = Model([inp,inp2], out) critic.compile(loss="MSE", optimizer=Adam(0.0001)) return actor, critic
Example #27
Source File: model.py From Image-Caption-Generator with MIT License | 5 votes |
def AlternativeRNNModel(vocab_size, max_len, rnnConfig, model_type): embedding_size = rnnConfig['embedding_size'] if model_type == 'inceptionv3': # InceptionV3 outputs a 2048 dimensional vector for each image, which we'll feed to RNN Model image_input = Input(shape=(2048,)) elif model_type == 'vgg16': # VGG16 outputs a 4096 dimensional vector for each image, which we'll feed to RNN Model image_input = Input(shape=(4096,)) image_model_1 = Dense(embedding_size, activation='relu')(image_input) image_model = RepeatVector(max_len)(image_model_1) caption_input = Input(shape=(max_len,)) # mask_zero: We zero pad inputs to the same length, the zero mask ignores those inputs. E.g. it is an efficiency. caption_model_1 = Embedding(vocab_size, embedding_size, mask_zero=True)(caption_input) # Since we are going to predict the next word using the previous words # (length of previous words changes with every iteration over the caption), we have to set return_sequences = True. caption_model_2 = LSTM(rnnConfig['LSTM_units'], return_sequences=True)(caption_model_1) # caption_model = TimeDistributed(Dense(embedding_size, activation='relu'))(caption_model_2) caption_model = TimeDistributed(Dense(embedding_size))(caption_model_2) # Merging the models and creating a softmax classifier final_model_1 = concatenate([image_model, caption_model]) # final_model_2 = LSTM(rnnConfig['LSTM_units'], return_sequences=False)(final_model_1) final_model_2 = Bidirectional(LSTM(rnnConfig['LSTM_units'], return_sequences=False))(final_model_1) # final_model_3 = Dense(rnnConfig['dense_units'], activation='relu')(final_model_2) # final_model = Dense(vocab_size, activation='softmax')(final_model_3) final_model = Dense(vocab_size, activation='softmax')(final_model_2) model = Model(inputs=[image_input, caption_input], outputs=final_model) model.compile(loss='categorical_crossentropy', optimizer='adam') # model.compile(loss='categorical_crossentropy', optimizer='rmsprop') return model
Example #28
Source File: model.py From polyaxon-examples with Apache License 2.0 | 5 votes |
def train(experiment, max_features, maxlen, num_nodes, dropout, optimizer, log_learning_rate, batch_size, epochs): model = Sequential() model.add(Embedding(max_features, 128, input_length=maxlen)) model.add(Bidirectional(LSTM(num_nodes))) model.add(Dropout(dropout)) model.add(Dense(1, activation='sigmoid')) model.compile(OPTIMIZERS[optimizer](lr=10 ** log_learning_rate), loss='binary_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, validation_data=[x_test, y_test], callbacks=[ EarlyStopping( monitor='val_loss', min_delta=1e-4, patience=3, verbose=1, mode='auto'), PolyaxonKerasCallback(run=experiment) ]) return model.evaluate(x_test, y_test)[1]
Example #29
Source File: model.py From tensorflow-nlp-examples with MIT License | 5 votes |
def build(self): left_context = Input(batch_shape=(None, None), dtype='int32') mention = Input(batch_shape=(None, None), dtype='int32') mention_char = Input(batch_shape=(None, None, None), dtype='int32') right_context = Input(batch_shape=(None, None), dtype='int32') embeddings = Embedding(input_dim=self._embeddings.shape[0], output_dim=self._embeddings.shape[1], mask_zero=True, weights=[self._embeddings]) left_embeddings = embeddings(left_context) mention_embeddings = embeddings(mention) right_embeddings = embeddings(right_context) char_embeddings = Embedding(input_dim=self._char_vocab_size, output_dim=self._char_emb_size, mask_zero=True )(mention_char) char_embeddings = TimeDistributed(Bidirectional(LSTM(self._char_lstm_units)))(char_embeddings) mention_embeddings = Concatenate(axis=-1)([mention_embeddings, char_embeddings]) x1 = Bidirectional(LSTM(units=self._word_lstm_units))(left_embeddings) x2 = Bidirectional(LSTM(units=self._word_lstm_units))(mention_embeddings) x3 = Bidirectional(LSTM(units=self._word_lstm_units))(right_embeddings) x = Concatenate()([x1, x2, x3]) x = BatchNormalization()(x) x = Dense(self._word_lstm_units, activation='tanh')(x) pred = Dense(self._num_labels, activation='softmax')(x) model = Model(inputs=[left_context, mention, mention_char, right_context], outputs=[pred]) return model
Example #30
Source File: models.py From delft with Apache License 2.0 | 5 votes |
def gru_best(maxlen, embed_size, recurrent_units, dropout_rate, recurrent_dropout_rate, dense_size, nb_classes): #input_layer = Input(shape=(maxlen,)) input_layer = Input(shape=(maxlen, embed_size), ) #embedding_layer = Embedding(max_features, embed_size, # weights=[embedding_matrix], trainable=False)(input_layer) x = Bidirectional(GRU(recurrent_units, return_sequences=True, dropout=dropout_rate, recurrent_dropout=dropout_rate))(input_layer) x = Dropout(dropout_rate)(x) x = Bidirectional(GRU(recurrent_units, return_sequences=True, dropout=dropout_rate, recurrent_dropout=dropout_rate))(x) #x = AttentionWeightedAverage(maxlen)(x) x_a = GlobalMaxPool1D()(x) x_b = GlobalAveragePooling1D()(x) #x_c = AttentionWeightedAverage()(x) #x_a = MaxPooling1D(pool_size=2)(x) #x_b = AveragePooling1D(pool_size=2)(x) x = concatenate([x_a,x_b], axis=1) #x = Dense(dense_size, activation="relu")(x) #x = Dropout(dropout_rate)(x) x = Dense(dense_size, activation="relu")(x) output_layer = Dense(nb_classes, activation="sigmoid")(x) model = Model(inputs=input_layer, outputs=output_layer) model.summary() model.compile(loss='binary_crossentropy', #optimizer=RMSprop(clipvalue=1, clipnorm=1), optimizer='adam', metrics=['accuracy']) return model # 1 layer bid GRU