Wolfram Language

Bild- und Signalverarbeitung

Bilderkennung mittels Deep Learning

Deep Learning kann erfolgreich auf viele Probleme in der Bildverarbeitung und Computer Vision angewendet werden. Mit NetChain und NetTrain können Sie ein neuronales Netz definieren und trainieren, handgeschriebene Ziffern auf einem Bild zu klassifizieren.

Rufen Sie Trainings- und Validierungsdaten aus der MNIST-Datenbank handgeschriebener Ziffern ab.

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

Entwerfen Sie ein Convolutional Neural Net, das 28×28-Graustufenbilder erkennen kann.

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

Trainieren Sie das Netz in drei Trainingsrunden.

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

Evaluieren Sie das trainierte Netz direkt mit zufällig ausgewählten Bildern aus dem Validierungssatz.

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

Verwandte Beispiele

en es fr ja ko pt-br ru zh