强制keras模式.fit()使用多处理

2024-04-28 10:28:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的Keras没有后端,我想在gpu上训练我的网络。这真的很好用。但是当我想训练大量的数据时,我意识到,model.fit()函数有一个瓶颈(我使用的是函数API)。在

实际上,在model.fit()函数中,Keras开始使用GPU进行训练。但是在GPU上开始之前,它需要大量的CPU工作来准备培训(我不知道在实际培训之前,fit()正在做什么)。问题是,这个部分只使用一个线程,所以这个部分需要相当长的时间。在

是否可以在这一步强制Keras使用多处理?在

编辑:向函数调用添加了其他数据:

我的函数调用如下所示:

optimizer = SGD(lr=0.00001)
early_stopping = EarlyStopping(monitor='val_loss', patience=30, verbose=1, mode='auto')
outname = join(outdir, save_base_name+".model")
checkpoint = ModelCheckpoint(outname, monitor='val_loss', verbose=1, save_best_only=True)
model.compile(loss='hinge', optimizer=optimizer, metrics=['accuracy'])
model.fit(
    train_instances.x,
    train_instances.y,
    batch_size=60,
    epochs=50,
    verbose=1,
    callbacks=[checkpoint, early_stopping],
    validation_data=(valid_instances.x, valid_instances.y),
    shuffle=True
)

我使用的模型(您可以在这里找到实现:https://github.com/pexmar/DSCNN_document)有90个维度为100x300的输入(共享层)(word2vec嵌入层:100个单词,每个有300个维度)。我给网络提供了12500个训练实例和1000个验证实例。在


Tags: 数据instances函数网络verbosemodelgpumonitor