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 dentraînement 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 28x28 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'entraînement.

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

Créez une liste de 3 qui ont été mal classés comme 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