在Keras的拟合函数中,validation_data和validation_split之间的关系是什么?

erhoui1w  于 2022-11-13  发布在  其他
关注(0)|答案(5)|浏览(227)

validation_split说:“* 嘿,给予我所有的输入数据-我将负责测试和验证之间的分裂 *"。

model.fit(inputX, inputY, validation_split=0.20, epochs=10, batch_size=10)

validation_data表示“* 请明确地给予我验证数据 *”

model.fit(inputX, inputY, validation_data=(testX,testY), epochs=10, batch_size=10)

除了我的理解之外,还有什么隐藏的技巧或我遗漏的东西吗?

v9tzhpje

v9tzhpje1#

不,一切都是正确的。这种分离背后的一个潜在原因是,有时人们分别拥有训练和验证数据(在许多学术数据集中),而有时你拥有所有数据,可以按自己的意愿进行拆分。

hgc7kmma

hgc7kmma2#

您的理解是正确的。要添加更多详细信息,请使用-validation_splitkeras函数,用户可以轻松地将训练数据集拆分为训练和验证(节省您的自定义工作)。
例如,- setting***validation_split=0.2***,告诉keras在进行验证洗牌之前使用最后20%的数据。

gudnpqoy

gudnpqoy3#

在处理不平衡的数据集时,我将添加一些重要的东西。使用***validation_split***不会保留每个类的百分比。通常,您将自己执行***validation_data***,以便保留这些百分比。此外,我建议StratifiedShuffleSplit这样做。

gstyhher

gstyhher4#

如果你使用validation_data选项,你需要分别准备validation数据和train数据,这会花费更多的精力。然后,validation_split选项允许你只输入一整串数据,然后在里面拆分它。无论如何,这是更好地保存时间。

olhwl3o2

olhwl3o25#

你说得对,但这里有个小错误,
“嘿,给予我所有的输入数据-我将负责测试和验证之间的分离”
应为:
“嘿,给予我所有的输入数据-我将处理训练验证之间的拆分”
因为它实际上将数据集拆分为两部分;训练数据集验证数据集
最后,使用测试集计算模型的得分。

相关问题