问题在于,当我从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时你会得到什么建议?
谢谢!