gpt4 book ai didi

python - Keras 模型无法预测以 TFRecordDataset 作为输入的新样本

转载 作者:太空宇宙 更新时间:2023-11-04 02:11:52 25 4
gpt4 key购买 nike

我正在使用 TFRecordDataset 迭代器作为输入来训练 Keras 模型。训练阶段运行良好,但当我调用 model.predict 时,模型仍在使用训练数据而不是新数据作为输入。

# Load data as tensorflow iterator on a TFRecordDataset
X, y = loader.load_training_tensor_iterator()
X_test, y_test = loader.load_test_tensor_iterator()

# Build the model
input_layer = Input(tensor=X)
reshape = Flatten(input_shape=(-1, 10, 128))(input_layer)
a1 = Dense((200))(reshape)
a1 = BatchNormalization()(a1)
a1 = Activation('relu')(a1)
a1 = Dropout(drop_rate)(a1)
output_layer = Dense(classes_num, activation='sigmoid')(a1)
model = keras.models.Model(inputs=input_layer, outputs=output_layer)

model.compile(optimizer=keras.optimizers.Adam(lr=1e-3),
loss='binary_crossentropy',
target_tensors=[y])

model.fit(
epochs=EPOCHS,
steps_per_epoch=math.ceil(TRAINING_SET_SIZE/BATCH_SIZE))

现在,当我尝试使用该模型并获得对测试数据的预测时:

# Run predictions
y_pred = model.predict(X_test, steps=3)

我在 y_pred 中得到的是对训练集 X 的预测,而不是对 X_test 的预测。

我如何指定,在预测时,输入张量应该是传递给 predict 的数据,而不是传递给 Input(tensor= X) ?

最佳答案

引用Keras documentation对于输入层和 compile方法。当您设置张量参数时,Keras 不会为输入创建占位符,这就是您无法在 X_test 上运行预测的原因。您可以在不在输入层或编译方法中设置张量选项的情况下提供给模型并训练您的模型,这将使​​您能够运行预测,或通过提供给占位符来使用其他变量进行评估。 Here是一个示例,通过使用来自 Keras 的数据集 API 定义这种方式来显示测试。

关于python - Keras 模型无法预测以 TFRecordDataset 作为输入的新样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53584617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com