Validation_data 和 Validation_split

Ali*_*sef 3 python machine-learning keras tensorflow

所以我有一个预测输出功率的 GRU 模型。对于训练数据,我有一个 csv 文件,其中包含 2018 年的数据,而对于我的测试数据,它是另一个 csv 文件,其中包含 2019 年的数据。

我只需要简短地提问。

  1. 由于我使用 2 个不同的 csv 文件,一个用于测试,一个用于训练,所以我不需要train_test_split

  2. 说到model.fit,我真的不知道 Validation_data和 之间的区别Validation_split,我应该使用哪个?

我已经分别测试了这 3 行,第二行和第三行给出了相同的精确结果,而第一行给出的结果要低得多 val_loss

谢谢。

history=model.fit(X_train, y_train, batch_size=256, epochs=25, validation_split=0.1, verbose=1, callbacks=[TensorBoardColabCallback(tbc)])  
history=model.fit(X_train, y_train, batch_size=256, epochs=25, validation_data=(X_test, y_test), verbose=1, callbacks=[TensorBoardColabCallback(tbc)])
history=model.fit(X_train, y_train, batch_size=256, epochs=25, validation_data=(X_test, y_test), validation_split=0.1, verbose=1, callbacks=[TensorBoardColabCallback(tbc)])
Run Code Online (Sandbox Code Playgroud)

Tho*_*aci 6

  1. 您可以做您想做的事,是的,您可以使用一个文件进行训练,一个文件进行验证。train_test_split但如果您愿意,您也可以将它们合并然后使用。不过,我建议你合并它们,因为你有不同时间段的数据,可能会有差异。
  2. usingvalidation_data意味着你自己提供训练集和验证集,而 usingvalidation_split意味着你只提供训练集,keras 将其分为训练集和验证集(验证集是validation_split训练集大小的倍)

  • 您不能同时使用两者,文档指出:“validation_data”将覆盖“validation_split”:https://keras.io/models/sequential/#fit (2认同)