首页 > 解决方案 > 如何将 tf 模型预测与层相关联?

问题描述

我们正在研究我们的TensorflowAI Sequential model,它具有输入数据数组,并提供预测的“真”或“假”概率。

我们想知道哪个预测对应于“真”,哪个预测对应于“假”

我们的模型:

model = tf.keras.Sequential([                  
        layers..
        tf.keras.layers.GlobalAveragePooling1D(),
        tf.keras.layers.Dense(2, activation='softmax')
    ])

模型编译:

model.compile(loss="sparse_categorical_crossentropy",
                  optimizer=tf.keras.optimizers.Adam(),
                  metrics=['accuracy']
                  )

然后模型适合测试结果,其中结果是“真”或“假”。

history = self.model.fit(
        np.array(self.data["tests"], dtype=float),
        np.array(self.data["results"], dtype=float),
        validation_split=0.1,
        epochs=self.epochs,
        batch_size=self.batch_size,
        steps_per_epoch=self.steps_per_epoch,
        verbose=0,
        shuffle=True,
        callbacks=[PlotLossesKerasTF()],
    )

当我们对我们使用的新数据进行预测时model.predict(newData),它会为我们提供如下概率:

[[0.5787903  0.42120975]]

那么这些数字中的哪些对应于哪个标签?

标签: pythontensorflowkeras

解决方案


它与您的训练标签相同。

假设您有一个输入图像,并且您对它是猫、狗还是鸟进行分类。然后,您的训练数据是一组图像和相应的标签,[cat dog bird]例如 - 标记为狗的图像[0 1 0]。因此model.predict(image)以相同格式输出概率数组,猫分类的概率等等[cat dog bird]output[0]

此外,如果您的输出为真/假,请考虑使用一个具有 sigmoid 激活和二元交叉熵的神经元输出作为您的损失函数。


推荐阅读