Wolfram 언어

신경망

숫자의 분류

육필 숫자 MNIST 데이터베이스를 사용하여 이미지에서 주어진 숫자를 예측하는 합성곱 네트워크를 훈련합니다.

먼저, 학습 데이터와 검증 데이터를 검색합니다.

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

입력으로 28×28 그레이 스케일 이미지를 가지는 합성곱 분류 신경망을 정의합니다.

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

4회의 훈련 라운드를 거쳐 네트워크를 훈련시킵니다.

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

검증 집합에서 무작위로 추출된 이미지에서 훈련된 네트워크를 직접 평가합니다.

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

관련 예제

de en es fr ja pt-br ru zh