(如果可能)如何矢量化此培训流程?

时间:2017-08-16 14:17:09

标签: python deep-learning keras vectorization lstm

问题在于,当我从CPU切换到GPU时,我在培训期间只看到了一秒的改进。我相信这是因为我的训练过程是高度迭代而不是矢量化。

有关矢量化此Keras培训的任何建议吗?

e_num = 0
sample_count = len(trainX[0])
for e in range(epochs):
    e_num += 1
    print(e_num)
    for i in range(len(trainX)):
        model.fit(trainX[i], trainY[i], epochs=1, batch_size=32,
            verbose=2, shuffle=False,
            validation_split=fix_validation_split(0.05, sample_count,
            batch_size))
    model.reset_states()

Keras的问题在于我无法将拟合函数传递给4-D数据集。因此,我正在迭代训练trainX中的每个3-D数据集。当我将batch_size从1增加到32时,训练显然要快得多。但是,CPU和GPU之间的每个时期仍然只有1秒的时差。这是因为我的训练过程没有适当的矢量化吗?如果是这样,在使用Keras时你会得到什么建议?

谢谢!

0 个答案:

没有答案