从Keras手册中,我了解到变量validation_data
可以是:
- NumPy数组或Tensor的元组
(x_val, y_val)
。 - NumPy数组的元组
(x_val, y_val, val_sample_weights)
。 - 一个tf.data.Dataset。
- 返回
(inputs, targets)
或(inputs, targets, sample_weights)
的Python生成器或keras.utils.sequence。
我的问题是:既然我使用了多个命名输入,那么我是否可以使用元组(x_val, y_val)
作为validation_data
,其中x_val
是NumPy数组的字典(键等于模型输入的名称),y_val
是一个简单的NumPy数组?
谢谢你的帮助。
1条答案
按热度按时间r9f1avp51#
由于您使用了多个命名输入,因此不能为
validation_data
参数传递元组(x_val, y_val)
(至少目前Keras不支持)。根据TensorFlow和Keras文档:验证数据将覆盖验证拆分。验证数据可以是:
tf.distribute.experimental.ParameterServerStrategy尚不支持返回*(输入,目标)或(输入,目标,样本权重).验证数据的Python生成器或keras.utils.Sequence**。
可能的解决方案:
一个可能的解决方案是连接训练和验证数据集,并将其作为
x
和y
的参数传递给fit
方法,同时使用validation_split
指定验证部分。请注意:验证数据是在混洗之前从所提供的x和y数据中的最后一个样本中选择的。
更多详细信息
假设您的数据集有两个输入(例如in1和in2)和两个输出(例如out1和out2)。
可选阅读
您可以首先根据需要重排训练和验证数据集:
然后,您可以撷取图征和标示:
训练和验证数据集的连接
适合车型
拟合模型时: