问题是,当我从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时你会有什么建议?

谢谢!