web-dev-qa-db-fra.com

keras: quelle est la différence entre model.predict et model.predict_proba

J'ai trouvé model.predict et model.predict_proba donnent tous deux une matrice 2D identique représentant les probabilités à chaque catégorie pour chaque ligne.

Quelle est la différence des deux fonctions?

19
jingweimo

prédire

predict(self, x, batch_size=32, verbose=0)

Génère des prédictions de sortie pour les échantillons d'entrée, en traitant les échantillons par lots.

Arguments

x: the input data, as a Numpy array.
batch_size: integer.
verbose: verbosity mode, 0 or 1.

Résultats

A Numpy array of predictions.

prédire_proba

predict_proba(self, x, batch_size=32, verbose=1)

Génère des prédictions de probabilité de classe pour les échantillons d'entrée lot par lot.

Arguments

x: input data, as a Numpy array or list of Numpy arrays (if the model has multiple inputs).
batch_size: integer.
verbose: verbosity mode, 0 or 1.

Résultats

A Numpy array of probability predictions.

Edit: Dans la version récente de keras, Predict et Predict_Proba sont identiques, c'est-à-dire que les deux donnent des probabilités. Pour obtenir les étiquettes de classe, utilisez predict_classes. La documentation n'est pas mise à jour. (adapté du commentaire d'Avijit Dasgupta)

27
Wasi Ahmad

Comme mentionné dans les commentaires précédents (et ici ), il n'y a actuellement aucune différence.
Cependant, l'un semble n'existe que pour la compatibilité descendante (je ne sais pas lequel, et je serais intéressé de savoir).

1
ohad