我注意到https://www.tensorflow.org/guide/keras/train_and_evaluate#automatically_setting_apart_a_validation_holdout_set中的LogisticEndpoint
层。该文档构建了如下模型:
import numpy as np
inputs = keras.Input(shape=(3,), name="inputs")
targets = keras.Input(shape=(10,), name="targets")
logits = keras.layers.Dense(10)(inputs)
predictions = LogisticEndpoint(name="predictions")(logits, targets)
model = keras.Model(inputs=[inputs, targets], outputs=predictions)
model.compile(optimizer="adam") # No loss argument!
data = {
"inputs": np.random.random((3, 3)),
"targets": np.random.random((3, 10)),
}
model.fit(data)
我的问题是在推理时如何使用这个模型,因为我们在使用model.predict
时不知道目标
“LogisticEndpoint”实际上是一个层。它将预测和目标作为输入,可以计算
add_loss()
跟踪的损失,并计算add_metric()
跟踪的精度标量如果我没有错的话,目标实际上是地面真相数据。 当您进行推理(测试阶段,既不训练也不验证)时,您不需要地面真实数据。 只需将输入传递给模型,然后将输出作为预测
要对多输入进行预测:
首先,将多个输入转换为一个数组(可能是一个大数组)
然后确保数组的形状(或者确切地说,张量)与输入层的大小匹配
TF2中有一部分代码用于多输入
相关问题 更多 >
编程相关推荐