У меня слишком большой набор данных, чтобы поместиться в ОЗУ, поэтому я решил использовать train_on_batch для постепенного обучения моей модели.Чтобы проверить, работает ли этот подход, я взял подмножество своих больших данных, чтобы выполнить предварительное тестирование.
Однако у меня возникли некоторые проблемы при обучении модели, а именно точность модели застряла на 10%когда тренируешься с train_on_batch ().С помощью fit () я получаю точность 95% в 40 эпох.Я также попробовал fit_generator () и столкнулся с похожими проблемами.
с использованием fit ()
results = model.fit(x_train,y_train,batch_size=128,nb_epoch=40)
с помощью train_on_batch ()
#386 has been chosen so that each batch size is 128
splitSize = len(y_train) // 386
for j in range(20):
print('epoch: '+str(j)+' ----------------------------')
np.random.shuffle(x_train)
np.random.shuffle(y_train)
xb = np.array_split(x_train,386)
yb = np.array_split(y_train,386)
sumAcc = 0
index = list(range(386))
random.shuffle(index)
for i in index:
results = model.train_on_batch(xb[i],yb[i])
sumAcc += results[1]
print(sumAcc/(386))