CNN训练调用model.fit()报batch_size重复赋值错误,应如何正确传参
错误原因分析
- Keras框架中
model.fit()的前三个位置参数依次为x(训练特征)、y(训练标签)、batch_size(批次大小),你将X_test作为第三个位置参数传入,相当于隐式给batch_size赋值为X_test,后续又显式声明了batch_size=6,因此触发重复传参的类型错误。 - 额外注意:
validation_split是从传入的训练集中自动按比例拆分验证集的参数,如果你已经手动拆分了独立的测试集作为验证数据,不需要再设置该参数,二者选其一即可。
正确传参写法
方案1:用手动拆分的25%测试集作为验证集
需要将测试集的特征和标签打包为元组,传入validation_data参数:
results = model.fit( X_train, Y_train, validation_data=(X_test, Y_test), batch_size=6, epochs=5, callbacks=callbacks )
方案2:从训练集拆分10%作为验证集,测试集留作最终效果评估
results = model.fit( X_train, Y_train, validation_split=0.1, batch_size=6, epochs=5, callbacks=callbacks ) # 训练完成后单独调用评估方法测试泛化效果 test_loss, test_acc = model.evaluate(X_test, Y_test)
内容的提问来源于stack exchange,提问作者Shan
相关产品推荐
相关产品推荐

