如何将tf模型预测与图层相关联?

时间:2020-08-23 15:39:18

标签: python tensorflow keras

我们正在开发Tensorflow AI Sequential model,该AI在输入中具有数据数组,并在预测中提供“ true”或“ false”的概率。

我们想知道哪个预测对应于“ true”,哪个预测对应于“ false”

我们的型号:

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']
                  )

然后模型 tests results 匹配,其中 results 是'true'或'false '。

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]]

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

1 个答案:

答案 0 :(得分:0)

与您的训练标签相同。

请考虑您有一个输入图像,然后将其分类为猫,狗还是鸟。这样,您的训练数据就是一组图像和格式为[cat dog bird]的相应标签,例如-标记为[0 1 0]的狗的图像。因此model.predict(image)以相同的格式[cat dog bird]输出概率数组,因此output[0]是分类的概率,依此类推。

如果您的输出是对/错,请考虑使用一个具有S型激活和二进制交叉熵的神经元输出作为损失函数。