Mesurez la performance de la classification
Mesurez la précision d'un dispositif de reconnaissance de chiffres entraînés sur la base de données MNIST de chiffres manuscrits.
Tout d'abord obtenez les données d'apprentissage et de validation.

resource = ResourceObject["MNIST"];
trainingData = ResourceData[resource, "TrainingData"];
testData = ResourceData[resource, "TestData"];

RandomSample[trainingData, 5]

Définissez un réseau neuronal de convolution prenant des images avec des niveaux gris 28×28 en entrée.

lenet = NetChain[{
ConvolutionLayer[20, 5], Ramp,
PoolingLayer[2, 2],
ConvolutionLayer[50, 5], Ramp,
PoolingLayer[2, 2],
FlattenLayer[],
500, Ramp, 10,
SoftmaxLayer[]},
"Output" -> NetDecoder[{"Class", Range[0, 9]}],
"Input" -> NetEncoder[{"Image", {28, 28}, "Grayscale"}]
]

Entraînez le réseau pour trois tours d'apprentissage.

lenet = NetTrain[lenet, trainingData, ValidationSet -> testData,
MaxTrainingRounds -> 3]

Évaluez le réseau entraîné directement sur les images échantillonnées au hasard dans l'ensemble de validation.

imgs = Keys @ RandomSample[testData, 5];
Thread[imgs -> lenet[imgs]]

Créez un objet de ClassifierMeasurements à partir du réseau entraîné et l'ensemble de validation.

cm = ClassifierMeasurements[lenet, testData]

Obtenez la précision du réseau sur l'ensemble de validation.

cm["Accuracy"]

Dressez la liste des 3 qui ont été classés à tort comme des 8.

cm[{"Examples", 3 -> 8}]

Obtenez un tracé de la matrice de confusion des prédictions du réseau sur l'ensemble de validation.

cm["ConfusionMatrixPlot"]
