Beispiel #1
0
def load_model(model_path):

    model = build_model(training=False)

    model.load_weights(model_path)

    return model
Beispiel #2
0
def run():
    batch_size = 63
    epochs = 5000
    
    data_process = DataProcess(use_word2cut=False)

    model = build_model()
  
    documents_length = data_process.get_documents_size(data_process.enc_ids_file, data_process.dec_ids_file)
    
    if batch_size > documents_length:
        print("ERROR--->" + u"语料数据量过少,请再添加一些")
        return None
    #自适应学习率
    reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.2, patience=20, min_lr=1e-6, mode='min')
    '''monitor: 需要监视的量,val_loss,val_acc
    patience: 当early stop被激活(如发现loss相比上一个epoch训练没有下降),则经过patience个epoch后停止训练
    verbose: 信息展示模式
    mode: 'auto','min','max'之一,在min模式训练,如果检测值停止下降则终止训练。在max模式下,当检测值不再上升的时候则停止训练。'''
    early_stopping = EarlyStopping(monitor='val_loss', patience=50, verbose=2)
    model.fit_generator(generator=generate_batch(batch_size=batch_size),
                        steps_per_epoch=int(documents_length / batch_size)+5, \
                        validation_data=generate_batch(batch_size=batch_size), \
                        validation_steps=int(documents_length / batch_size)+5,\
                        epochs=epochs, verbose=1, workers=2, use_multiprocessing=True,
                        callbacks=[reduce_lr,early_stopping])

    model.save_weights("model/seq2seq_model_weights.h5", overwrite=True)
Beispiel #3
0
def run():
    batch_size = 63
    epochs = 5000

    data_process = DataProcess(use_word2cut=False)

    model = build_model()

    documents_length = data_process.get_documents_size(
        data_process.enc_ids_file, data_process.dec_ids_file)

    if batch_size > documents_length:
        print("ERROR--->" + u"语料数据量过少,请再添加一些")
        return None

    model.fit_generator(generator=generate_batch(batch_size=batch_size),
                        steps_per_epoch=int(documents_length / batch_size), \
                        epochs=epochs, verbose=1, workers=1)

    model.save_weights("model/seq2seq_model_weights.h5", overwrite=True)