【发布时间】:2021-02-09 19:54:57
【问题描述】:
使用 Keras,我尝试使用不同的数据拆分循环训练 10 次。不过,在每个循环之后,我的准确率可能会提高很多,可能是因为它不会重置并在新组中看到新数据(训练过的数据可能会出现在测试下一个循环中)
我希望 model.fit 将其重置为pr. an answer here saying it does so,但我无法做到。然后我在循环开始时尝试了 K.clear_session(),as pr. example 1 here,但它什么也没做。我可以第一次保存未经训练的模型并在循环开始时重新加载它,但这似乎是一种不好的方法/不好的做法。我能做些什么/我做错了吗?
from tensorflow.keras import backend as K
for i in range(0, 10):
print("Starting loop " + str(i))
K.clear_session()
model = keras.Model(inputs=inputs, outputs=outputs, name="SchoolProject")
model.compile(loss=tensorflow.keras.losses.binary_crossentropy, optimizer=tensorflow.keras.optimizers.Adam(lr=hpInitialLearningRate), metrics=['accuracy'])
trainData, valData, testData, trainTruth, valTruth, testTruth = getTrainValAndTestSet()
model.fit(trainData, trainTruth, epochs=hpEpochs, verbose=1, callbacks=callbacks_list, validation_data=(valData, valTruth))
score = model.evaluate(testData, testTruth, verbose=1)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
testAccList.append(score[1])
print("Ending loop " + str(i))
【问题讨论】:
标签: python tensorflow keras deep-learning neural-network