主要内容

我的爱与你同在

Este ejemplo muestra cómo ajustar una红色神经元convolucional AlexNet preentrenada para分类una nueva colección de imágenes。

AlexNet se ha entrenado con más de un millón de imágenes y puede classiificarlas en 1000 categorías de objectos (como teclado, taza de café, lápiz y muchos animales)。La red ha aprendido代表ricas en características para una amplia gama de imágenes。La red toma una imagen como entrada y, continuación, emite una etiqueta para el客体在La imagen junto con las probabilidades para cada una de las categorías客体。

深度学习的知识转移。我的脸是红的,我的脸是红的,我的脸是红的,我的脸是红的。天上的星星,红色的,转移的,在天上的星星más rápido y fácil在天上的,转移的,在天上的。形式上的转变rápida las características一个新的想法imágenes de entrenamiento。

Cargar拿督

descompcompa y cargue las nuevas imágenes como un almacén de datos de imágenes。imageDatastore形式上的礼仪automática las imágenes basándose在地毯上的名字和仪式上的内容联合国客体ImageDatastore.Un almacén de datos imágenes permite almacenar Un gran卷de datos imágenes, incluidos los que no caben en la memoria, y leer eficazmente lotes de imágenes durante el entrenamiento de una red neuronal convolucional。

解压缩(“MerchData.zip”);imds = imageDatastore(“MerchData”...“IncludeSubfolders”,真的,...“LabelSource”“foldernames”);

将数据与数据结合起来validación。使用70% de las imágenes para el entramiento y el 30% para validación。splitEachLabel除el almacén de datos de图片在新时代的日子里。

[imdsTrain,imdsValidation] = splitEachLabel(imds,0.7,“随机”);

Este pequeño conjunto de datos ahora continene solo 55 imágenes de entrenamiento y 20 imágenes de validación。Visualice algunas imágenes de muestra。

numTrainImages = numel(imdsTrain.Labels);idx = randperm(numTrainImages,16);数字i = 1:16 subplot(4,4,i) i = readimage(imdsTrain,idx(i));imshow(我)结束

Cargar una red preentrenada

Cargue la red神经元AlexNet preentrenada。Si no se ha安装深度学习工具箱™模型用于AlexNet网络, el software proporciona UN enlace de descarga。AlexNet se ha entrenado con más de un millón de imágenes y puede分类imágenes en 1000 categorías de对象(por ejemplo, teclado, ratón, lápiz y muchos animales)。Como result, el modelo ha aprendido代表ricas características para a amplia gamma imágenes。

Net = alexnet;

UtiliceanalyzeNetworkPara obtener una visualización interactiva de la arquitectura de la red e información detallada清醒SUS capas。

analyzeNetwork(净)

La primera capa, La de entrada de imágenes, requiere imágenes de entrada de un tamaño de 227 por 227 por 3, donde 3 es el número de canal de colour。

inputSize = net.Layers(1).InputSize
inputSize =1×3227 227 3

Sustituir capas结尾

Las últimas红色的帽子Preentrenada están configuradas para 1000个类。一个精确的问题clasificación新。除了三外,其他的都是美好的últimas,红色的未来。

layersTransfer = net.Layers(1:end-3);

转移到其他地方clasificación新经济发展的地方últimas总衔接衔接的地方,软衔接的地方和衔接衔接的地方clasificación。特别关于新时代的行动según新时代的行动。建立一个完整的、相互联系的世界tamaño建立一个número关于新数据的等级。天堂之海más rápido新迁迁之路,价值之路WeightLearnRateFactoryBiasLearnRateFactor这是一个整体的结合体。

numClasses = numel(categories(imdsTrain.Labels))
numClasses = 5
layers = [layersTransfer fullyConnectedLayer(numClasses,“WeightLearnRateFactor”, 20岁,“BiasLearnRateFactor”,20) softmaxLayer classificationLayer];

Entrenar la red

La red requiere imágenes de entrada de un tamaño de 227 por 227 por 3, pero las imágenes de los almacene de datos de imágenes tienen different tamaños。使用un almacén de datos de imágenes aumentado para形成层automáticamente el tamaño de las imágenes de entrenamiento。特别的操作,在月球上和月球上进行操作imágenes在月球上进行操作:在月球上进行操作imágenes在月球上进行操作,在月球上进行操作,在月球上进行操作,在月球上进行操作。那是一段美好的回忆那是一段美好的回忆imágenes那是一段美好的回忆。

pixelRange = [-30 30];imageAugmenter = imageDataAugmenter(...“RandXReflection”,真的,...“RandXTranslation”pixelRange,...“RandYTranslation”, pixelRange);augimdsTrain = augmentedimagedastore (inputSize(1:2)),imdsTrain,...“DataAugmentation”, imageAugmenter);

Para cambiar el tamaño de las imágenes de validación de forma automática sin realizar más aumentos de datos, utilice un almacén de datos de imágenes aumentadas sin especificninguna operación adicional de preprocesamiento。

augimdsValidation = augmentedImageDatastore(inputSize(1:2),imdsValidation);

特别的是,我爱你。Para la transferencia del arendizaje, mantenga las características转让权的初始(转让权的货币)。Para la, el, aprendizaje,建立,aprendizaje, tasa, de, aprendizaje,初步英勇pequeño。在前面,aumentó在前面,在前面,在前面,在前面,在前面,在前面,在前面,在前面。Esta combinación de ajustes de la tasa de aprendiazaje de como resultado un aprendiazaje rápido独自在新地方和un aprendiazaje más lento en las demás。我知道我的权利已经被转移了,没有必要和你在一起épocas。那época我们的关系是完整的,我们的关系是完整的,我们的关系是完整的。特别是el tamaño del minilote y los datos de validación。El软件验证拉红卡达iteración deValidationFrequencyDurante el entrenamiento。

选项= trainingOptions(“个”...“MiniBatchSize”10...“MaxEpochs”6...“InitialLearnRate”1的军医,...“洗牌”“every-epoch”...“ValidationData”augimdsValidation,...“ValidationFrequency”3,...“详细”假的,...“阴谋”“训练进步”);

平安,红色的形式,转移的能力和新生的能力。形式上的预先决定,trainNetworkusa una GPU en caso de que esté不可用。De lo contrario, usa una CPU。Entrenar en una GPU requiere并行计算工具箱™y undispositivo GPU兼容。Para obtener información清醒的性格,协商GPU计算要求(并行计算工具箱).También puede speciificel enorno de ejecución con el argument de normre -valor“ExecutionEnvironment”trainingOptions

netTransfer = trainNetwork(augimdsTrain,layers,options);

分类imágenes de validación

分类las imágenes de validación utilitzando la红色ajustada。

[YPred,scores] = category (netTransfer,augimdsValidation);

视觉视觉(Visualice cuatro) imágenes de validación de muestra con etiquetas predichas。

idx = randperm(numel(imdsValidation.Files),4);数字i = 1:4 subplot(2,2,i) i = readimage(imdsValidation,idx(i));imshow(I) label = YPred(idx(I));标题(字符串(标签));结束

计算la precisión de la clasificación en el conjunto de validación。La precisión es La fracción de etiquetas que La red predice correctamente。

YValidation = imdsValidation.Labels;accuracy = mean(YPred == YValidation)
准确度= 1

Para obtener consejos Para mejorar la precisión de la clasificación,领事深度学习技巧和技巧

Referencias

[1] Krizhevsky, Alex, Ilya Sutskever和Geoffrey E. Hinton。深度卷积神经网络的ImageNet分类神经信息处理系统的进展.2012.

[2]BVLC AlexNet模型.https://github.com/BVLC/caffe/tree/master/models/bvlc_alexnet

Consulte也

|||

特马relacionados