Wolfram Language

Réseaux neuronaux

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.

In[1]:=
Click for copyable input
resource = ResourceObject["MNIST"]; trainingData = ResourceData[resource, "TrainingData"]; testData = ResourceData[resource, "TestData"];
In[2]:=
Click for copyable input
RandomSample[trainingData, 5]
Out[2]=

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

In[3]:=
Click for copyable input
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"}] ]
Out[3]=

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

In[4]:=
Click for copyable input
lenet = NetTrain[lenet, trainingData, ValidationSet -> testData, MaxTrainingRounds -> 3]
Out[4]=

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

In[5]:=
Click for copyable input
imgs = Keys @ RandomSample[testData, 5]; Thread[imgs -> lenet[imgs]]
Out[5]=

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

In[6]:=
Click for copyable input
cm = ClassifierMeasurements[lenet, testData]
Out[6]=

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

In[7]:=
Click for copyable input
cm["Accuracy"]
Out[7]=

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

In[8]:=
Click for copyable input
cm[{"Examples", 3 -> 8}]
Out[8]=

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

In[9]:=
Click for copyable input
cm["ConfusionMatrixPlot"]
Out[9]=

Exemples connexes

de en es ja ko pt-br ru zh