如何在训练前对采用Gabor初始化的二分类CNN做测试集效果验证
解答
- 首先你不需要调用
model.fit():Keras 模型在完成网络结构定义、执行compile()方法后,你指定的Gabor卷积核初始化逻辑就已经执行完成,所有参数都处于初始状态,可以直接执行评估、预测操作,无需先启动训练流程。 - 你只需要调整代码末尾的执行顺序,在训练启动前先调用
model.evaluate()测试测试集表现即可,修改后的代码段如下:
from sklearn.model_selection import train_test_split trainX,testX,trainY,testY=train_test_split(Xdata,Ytarget,test_size=.3) # 训练前使用初始Gabor权重评估模型效果 print("训练前测试集表现:") print(model.evaluate(testX, testY, verbose=1)) history=model.fit(trainX,trainY,epochs=70,batch_size = 64, verbose = 1,validation_split=.3) print("训练完成后测试集表现:") print(model.evaluate(testX,testY))
注意:你网络中使用的BatchNormalization层,在
evaluate调用时默认使用推理模式,不会更新层内的移动平均统计量,不会修改模型的初始参数状态,不会影响后续训练的正常执行。
内容的提问来源于stack exchange,提问作者user3471773
相关产品推荐
相关产品推荐

