シンプルなメジ分類ネットワクの作成
この例では,深層学習による分類用のシンプルな畳み込みニューラルネットワークを作成し,学習を行う方法を説明します。畳み込みニューラルネットワークは深層学習に不可欠なツールであり,特にイメージの認識に適しています。
この例では,以下を実行する方法を示します。
。
ネットワ,クア,キテクチャの定義。
学習オプションの指定。
ネットワ,クに学習をさせます。
新しいデ,タのラベルの予測と分類精度の計算。
シンプルな▪▪メ▪▪ジ分類ネットワ▪クの作成および学習を対話的に行う方法を示す例に▪▪いてはディプネットワクデザナを使用したシンプルなメジ分類ネットワクの作成を参照してください。
デ,タの読み込み
数字の標本デタをメジデタストアとして読み込みます。関数imageDatastore
は、フォルダ、名に基づいて、メ、ジに自動的にラベルを付けます。
digitDatasetPath = fullfile(matlabroot,“工具箱”,“nnet”,“nndemos”,...“nndatasets”,“DigitDataset”);imds = imageDatastore(digitDatasetPath,...“IncludeSubfolders”,真的,...“LabelSource”,“foldernames”);
データを学習データセットと検証データセットに分割し,学習セットの各カテゴリに750個のイメージが含まれ,検証セットに各ラベルの残りのイメージが含まれるようにします。splitEachLabel
。
numTrainFiles = 750;[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,“随机”);
ネットワ,クア,キテクチャの定義
畳み込みニュ,ラルネットワ,クア,キテクチャを定義します。ネットワクの入力層にメジのサズを指定し,分類層の前の全結合層にクラスの数を指定します。それぞれのx x 28 x 1ピクセルで,10個のクラスがあります。
inputSize = [28 28 1];numClasses = 10;layers = [imageInputLayer(inputSize) convolution2dLayer(5,20) batchNormalizationLayer reluLayer fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];
深層学習層の詳細は,深層学習層の一覧を参照してください。
ネットワ,クの学習
学習オプションを指定し,ネットワ,クに学習させます。
既定で,trainNetwork
は,使用可能なgpuがあればgpuを使用し,なければCPUを使用します。GPUで学習を行うには,并行计算工具箱™とサポートされているGPUデバイスが必要です。サポトされているデバスにいては,Gpu計算の要件(并行计算工具箱)を参照してください。trainingOptions
の名前と値のペアの引数“ExecutionEnvironment”
を使用して,実行環境を指定することもできます。
选项= trainingOptions(“个”,...“MaxEpochs”4...“ValidationData”imdsValidation,...“ValidationFrequency”30岁的...“详细”假的,...“阴谋”,“训练进步”);net = trainNetwork(imdsTrain,layers,options);
学習オプションの詳細は,パラメ,タ,の設定と畳み込みニュ,ラルネットワ,クの学習を参照してください。
ネットワ,クのテスト
検証デ,タを分類し,分類精度を計算します。
YPred =分类(net,imdsValidation);YValidation = imdsValidation.Labels;accuracy = mean(YPred == YValidation)
准确度= 0.9892
深層学習の次のステップとして,事前学習済みのネットワ,クを他のタスクに使用してみることができます。転移学習または特徴抽出を使用して,自分のメジデタで新しい分類問題を解決してみましょう。例にいては,転移学習を使用した短時間での深層学習の開始と事前学習済みのネットワ,クから抽出された特徴を使用した分類器の学習を参照してください。事前学習済みのネットワ,クの詳細は,事前学習済みの深層ニュ,ラルネットワ,クを参照してください。