当目标是张量流中的输入之一时如何使用`model.predict`?
How to use `model.predict` when the target is one of inputs in tensorflow?
我注意到 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”实际上是一层。它以prediction和target作为输入,可以计算add_loss()
跟踪的loss,计算[=11=跟踪的precision scalar =12=].
目标,如果我没记错的话,实际上是地面实况数据。
当您进行推理时(测试阶段,既不是训练也不是验证),您不需要地面实况数据。
只需将输入传递给模型,然后将输出作为预测。
进行多输入预测:
首先,将多输入转换为一个数组(可能是一个大数组)。
然后确保数组的形状(或准确地说,张量)与输入层的大小匹配。
TF2中有一部分代码是我用来做多输入的。
...
for view_id in range(1,9):
...
img = self.transform(img).float()
pose_2d = self.transform(pose_2d).float()
img_con.append(img)
pose_2d_con.append(pose_2d)
# then make the img_con and pose_2d_con two tensor.
我注意到 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”实际上是一层。它以prediction和target作为输入,可以计算add_loss()
跟踪的loss,计算[=11=跟踪的precision scalar =12=].
目标,如果我没记错的话,实际上是地面实况数据。 当您进行推理时(测试阶段,既不是训练也不是验证),您不需要地面实况数据。 只需将输入传递给模型,然后将输出作为预测。
进行多输入预测:
首先,将多输入转换为一个数组(可能是一个大数组)。
然后确保数组的形状(或准确地说,张量)与输入层的大小匹配。
TF2中有一部分代码是我用来做多输入的。
...
for view_id in range(1,9):
...
img = self.transform(img).float()
pose_2d = self.transform(pose_2d).float()
img_con.append(img)
pose_2d_con.append(pose_2d)
# then make the img_con and pose_2d_con two tensor.