Python 强制keras mode.fit()使用多处理
我正在使用带有theano后端的Keras,我想在gpu上训练我的网络。这实际上效果不错。但是,当我想对大量数据进行培训时,我意识到,Python 强制keras mode.fit()使用多处理,python,multiprocessing,keras,theano,Python,Multiprocessing,Keras,Theano,我正在使用带有theano后端的Keras,我想在gpu上训练我的网络。这实际上效果不错。但是,当我想对大量数据进行培训时,我意识到,model.fit()函数中存在瓶颈(我使用的是函数API) 实际上,在model.fit()函数中,Keras开始使用GPU进行培训。但在GPU上启动之前,它需要大量CPU工作来准备培训(我不知道实际培训之前,fit()在做什么)。问题是,这个部分只使用一个线程,所以这个部分需要相当长的时间 在这一步中是否可能强制Keras使用多处理 编辑:在我的函数调用中添加
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
)
我使用的模型(您可以在这里找到实现:)有90个输入(共享层),维度为100x300(word2vec嵌入层:100个单词,每个有300个维度)。我向网络提供了12500个培训实例和1000个验证实例。您能否提供有关fit
方法调用、模型大小等的更多详细信息?当然可以。我在最初的帖子中添加了一些关于方法调用、模型和输入数据的信息。如果你需要更多的信息,请告诉我。