Обучите нейронную сеть для глубокого обучения
Используйте trainNetwork
, чтобы обучить сверточную нейронную сеть (ConvNet, CNN), сеть долгой краткосрочной памяти (LSTM) или двунаправленная сеть LSTM (BiLSTM) для классификации глубокого обучения и проблем регрессии. Можно обучить сеть или на центральном процессоре или на графическом процессоре. Для классификации изображений и регрессии изображений, можно обучить использование нескольких графических процессоров или параллельно. Используя графический процессор, мультиграфический процессор и параллельные опции требуют Parallel Computing Toolbox™. Чтобы использовать графический процессор для глубокого обучения, у вас должен также быть CUDA®, включенный NVIDIA®, графический процессор с вычисляет возможность 3.0 или выше. Задайте опции обучения, включая опции для среды выполнения, при помощи trainingOptions
.
trainedNet = trainNetwork(imds,layers,options)
trainedNet = trainNetwork(ds,layers,options)
trainedNet = trainNetwork(X,Y,layers,options)
trainedNet = trainNetwork(sequences,Y,layers,options)
trainedNet = trainNetwork(tbl,layers,options)
trainedNet = trainNetwork(tbl,responseName,layers,options)
[trainedNet,traininfo]
= trainNetwork(___)
обучает сеть для проблем классификации изображений. trainedNet
= trainNetwork(imds
,layers
,options
)imds
хранит входные данные изображения, layers
задает сетевую архитектуру, и options
задает опции обучения.
обучает сеть с помощью datastore trainedNet
= trainNetwork(ds
,layers
,options
)ds
, который возвращает считанные данные в ячейке таблицы 2D столбца или массиве 2D ячейки столбца. Эти два столбца задают сетевые входные параметры и ожидаемые ответы, соответственно.
обучает сеть для классификации изображений и проблем регрессии. trainedNet
= trainNetwork(X
,Y
,layers
,options
)X
содержит переменные прогноза, и Y
содержит категориальные метки или числовые ответы.
обучает сеть LSTM или BiLSTM для проблем регрессии и классификации. trainedNet
= trainNetwork(sequences
,Y
,layers
,options
)sequences
является массивом ячеек, содержащим последовательность или предикторы временных рядов, и Y
содержит ответы. Для проблем классификации Y
является категориальным вектором или массивом ячеек категориальных последовательностей. Для проблем регрессии Y
является матрицей целей или массивом ячеек числовых последовательностей.
обучает сеть для проблем регрессии и классификации. trainedNet
= trainNetwork(tbl
,layers
,options
)tbl
содержит числовые данные или пути к файлам к данным. Предикторы должны быть в первом столбце tbl
. Для получения информации о целях или переменных отклика, см. tbl.
обучает сеть для проблем регрессии и классификации. Предикторы должны быть в первом столбце trainedNet
= trainNetwork(tbl
,responseName
,layers
,options
)tbl
. Аргумент responseName
задает переменные отклика в tbl
.
[
также возвращает информацию об обучении с помощью любого из входных параметров в предыдущих синтаксисах.trainedNet
,traininfo
]
= trainNetwork(___)
Загрузите данные как объект ImageDatastore
.
digitDatasetPath = fullfile(matlabroot,'toolbox','nnet', ... 'nndemos','nndatasets','DigitDataset'); imds = imageDatastore(digitDatasetPath, ... 'IncludeSubfolders',true, ... 'LabelSource','foldernames');
Datastore содержит 10 000 синтетических изображений цифр от 0 до 9. Изображения сгенерированы путем применения случайных преобразований к изображениям цифры, созданным с различными шрифтами. Каждое изображение цифры является 28 28 пикселями. Datastore содержит равное количество изображений на категорию.
Отобразите некоторые изображения в datastore.
figure numImages = 10000; perm = randperm(numImages,20); for i = 1:20 subplot(4,5,i); imshow(imds.Files{perm(i)}); end
Разделите datastore так, чтобы каждая категория в наборе обучающих данных имела 750 изображений, и набор тестирования имеет остающиеся изображения от каждой метки.
numTrainingFiles = 750;
[imdsTrain,imdsTest] = splitEachLabel(imds,numTrainingFiles,'randomize');
splitEachLabel
разделяет файлы изображений в digitData
в два новых хранилища данных, imdsTrain
и imdsTest
.
Задайте сверточную архитектуру нейронной сети.
layers = [ ... imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer];
Установите опции на настройки по умолчанию для стохастического спуска градиента с импульсом. Определите максимальный номер эпох в 20 и запустите обучение с начального темпа обучения 0,0001.
options = trainingOptions('sgdm', ... 'MaxEpochs',20,... 'InitialLearnRate',1e-4, ... 'Verbose',false, ... 'Plots','training-progress');
Обучите сеть.
net = trainNetwork(imdsTrain,layers,options);
Запустите обучивший сеть на наборе тестов, который не использовался, чтобы обучить сеть и предсказать метки изображения (цифры).
YPred = classify(net,imdsTest); YTest = imdsTest.Labels;
Вычислите точность. Точность является отношением количества истинных меток в тестовых данных, совпадающих с классификациями от classify
до количества изображений в тестовых данных.
accuracy = sum(YPred == YTest)/numel(YTest)
accuracy = 0.9460
Обучите сверточную нейронную сеть с помощью увеличенных данных изображения. Увеличение данных помогает препятствовать тому, чтобы сеть сверхсоответствовала и запомнила точные детали учебных изображений.
Загрузите выборочные данные, которые состоят из синтетических изображений рукописных цифр.
[XTrain,YTrain] = digitTrain4DArrayData;
digitTrain4DArrayData
загружает набор обучающих данных цифры как 4-D данные массива. XTrain
является 28 28 1 5 000 массивов, где:
28 высота и ширина изображений.
1 количество каналов.
5000 количество синтетических изображений рукописных цифр.
YTrain
является категориальным вектором, содержащим метки для каждого наблюдения.
Отложите 1000 из изображений для сетевой валидации.
idx = randperm(size(XTrain,4),1000); XValidation = XTrain(:,:,:,idx); XTrain(:,:,:,idx) = []; YValidation = YTrain(idx); YTrain(idx) = [];
Создайте объект imageDataAugmenter
, который задает опции предварительной обработки для увеличения изображений, такие как изменение размеров, вращение, перевод и отражение. Случайным образом переведите изображения до трех пикселей горизонтально и вертикально и вращайте изображения с углом до 20 градусов.
imageAugmenter = imageDataAugmenter( ... 'RandRotation',[-20,20], ... 'RandXTranslation',[-3 3], ... 'RandYTranslation',[-3 3])
imageAugmenter = imageDataAugmenter with properties: FillValue: 0 RandXReflection: 0 RandYReflection: 0 RandRotation: [-20 20] RandScale: [1 1] RandXScale: [1 1] RandYScale: [1 1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: [-3 3] RandYTranslation: [-3 3]
Создайте объект augmentedImageDatastore
использовать для сетевого обучения и задать изображение выходной размер. Во время обучения datastore выполняет увеличение изображений и изменяет размер изображений. Datastore увеличивает изображения, не сохраняя образов к памяти. trainNetwork
обновляет сетевые параметры и затем отбрасывает увеличенные изображения.
imageSize = [28 28 1];
augimds = augmentedImageDatastore(imageSize,XTrain,YTrain,'DataAugmentation',imageAugmenter);
Задайте сверточную архитектуру нейронной сети.
layers = [ imageInputLayer(imageSize) convolution2dLayer(3,8,'Padding','same') batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,16,'Padding','same') batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,32,'Padding','same') batchNormalizationLayer reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer];
Задайте опции обучения для стохастического спуска градиента с импульсом.
opts = trainingOptions('sgdm', ... 'MaxEpochs',15, ... 'Shuffle','every-epoch', ... 'Plots','training-progress', ... 'Verbose',false, ... 'ValidationData',{XValidation,YValidation});
Обучите сеть. Поскольку изображения валидации не увеличиваются, точность валидации выше, чем учебная точность.
net = trainNetwork(augimds,layers,opts);
Загрузите выборочные данные, которые состоят из синтетических изображений рукописных цифр. Третий вывод содержит соответствующие углы в градусах, которыми вращалось каждое изображение.
Загрузите учебные изображения как 4-D массивы с помощью digitTrain4DArrayData
. Вывод XTrain
является 28 28 1 5 000 массивов, где:
28 высота и ширина изображений.
1 количество каналов.
5000 количество синтетических изображений рукописных цифр.
YTrain
содержит углы поворота в градусах.
[XTrain,~,YTrain] = digitTrain4DArrayData;
Отобразите 20 случайных учебных изображений с помощью imshow
.
figure numTrainImages = numel(YTrain); idx = randperm(numTrainImages,20); for i = 1:numel(idx) subplot(4,5,i) imshow(XTrain(:,:,:,idx(i))) end
Задайте сверточную архитектуру нейронной сети. Для проблем регрессии включайте слой регрессии в конце сети.
layers = [ ...
imageInputLayer([28 28 1])
convolution2dLayer(12,25)
reluLayer
fullyConnectedLayer(1)
regressionLayer];
Задайте сетевые опции обучения. Установите начальную букву, изучают уровень 0,001.
options = trainingOptions('sgdm', ... 'InitialLearnRate',0.001, ... 'Verbose',false, ... 'Plots','training-progress');
Обучите сеть.
net = trainNetwork(XTrain,YTrain,layers,options);
Проверьте производительность сети путем оценки точности прогноза тестовых данных. Используйте predict
, чтобы предсказать углы вращения изображений валидации.
[XTest,~,YTest] = digitTest4DArrayData; YPred = predict(net,XTest);
Оцените производительность модели путем вычисления среднеквадратичной ошибки (RMSE) предсказанных и фактических углов вращения.
rmse = sqrt(mean((YTest - YPred).^2))
rmse = single
6.4593
Обучите сеть LSTM глубокого обучения для классификации последовательностей к метке.
Загрузите японский набор данных Гласных, как описано в [1] и [2]. XTrain
является массивом ячеек, содержащим 270 последовательностей переменной длины с размерностью признаков 12. Y
является категориальным вектором меток 1,2..., 9. Записи в XTrain
являются матрицами с 12 строками (одна строка для каждого признака) и переменным количеством столбцов (один столбец для каждого временного шага).
[XTrain,YTrain] = japaneseVowelsTrainData;
Визуализируйте первые временные ряды в графике. Каждая строка соответствует функции.
figure plot(XTrain{1}') title("Training Observation 1") numFeatures = size(XTrain{1},1); legend("Feature " + string(1:numFeatures),'Location','northeastoutside')
Задайте архитектуру сети LSTM. Задайте входной размер как 12 (количество функций входных данных). Задайте слой LSTM, чтобы иметь 100 скрытых модулей и вывести последний элемент последовательности. Наконец, задайте девять классов включением полносвязного слоя размера 9, сопровождаемый softmax слоем и слоем классификации.
inputSize = 12; numHiddenUnits = 100; numClasses = 9; layers = [ ... sequenceInputLayer(inputSize) lstmLayer(numHiddenUnits,'OutputMode','last') fullyConnectedLayer(numClasses) softmaxLayer classificationLayer]
layers = 5x1 Layer array with layers: 1 '' Sequence Input Sequence input with 12 dimensions 2 '' LSTM LSTM with 100 hidden units 3 '' Fully Connected 9 fully connected layer 4 '' Softmax softmax 5 '' Classification Output crossentropyex
Задайте опции обучения. Задайте решатель как 'adam'
и 'GradientThreshold'
как 1. Установите мини-пакетный размер на 27 и определите максимальный номер эпох к 100.
Поскольку мини-пакеты являются маленькими с короткими последовательностями, центральный процессор лучше подходит для обучения. Установите 'ExecutionEnvironment'
на 'cpu'
. Чтобы обучаться на графическом процессоре, при наличии, устанавливает 'ExecutionEnvironment'
на 'auto'
(значение по умолчанию).
maxEpochs = 100; miniBatchSize = 27; options = trainingOptions('adam', ... 'ExecutionEnvironment','cpu', ... 'MaxEpochs',maxEpochs, ... 'MiniBatchSize',miniBatchSize, ... 'GradientThreshold',1, ... 'Verbose',false, ... 'Plots','training-progress');
Обучите сеть LSTM с заданными опциями обучения.
net = trainNetwork(XTrain,YTrain,layers,options);
Загрузите набор тестов и классифицируйте последовательности в динамики.
[XTest,YTest] = japaneseVowelsTestData;
Классифицируйте тестовые данные. Задайте тот же мини-пакетный размер, используемый для обучения.
YPred = classify(net,XTest,'MiniBatchSize',miniBatchSize);
Вычислите точность классификации прогнозов.
acc = sum(YPred == YTest)./numel(YTest)
acc = 0.9351
imds
Изображения с меткамиImageDatastore
Изображения с метками, заданными как объект ImageDatastore
с метками categorical
. Можно хранить данные в ImageDatastore
для сетей классификации изображений только.
ImageDatastore
позволяет пакетное чтение JPG или упреждающую выборку использования файлов изображений PNG. Если вы используете пользовательскую функцию для чтения изображений, то ImageDatastore
не выбирает с упреждением.
Используйте augmentedImageDatastore
для эффективной предварительной обработки изображений для глубокого обучения включая изменение размеров изображений.
Не используйте опцию readFcn
imageDatastore
, когда эта опция обычно значительно медленнее.
ds
DatastoreDatastore для данных, которые не помещаются в память, и предварительной обработки, заданной как datastore, который возвращает данные в ячейке таблицы 2D столбца или массиве 2D ячейки столбца. Эти два столбца задают сетевые входные параметры и ожидаемые ответы, соответственно.
Таблица приводит хранилища данных, которые непосредственно совместимы с trainNetwork
. Можно использовать другие встроенные хранилища данных для учебных нейронных сетей для глубокого обучения при помощи функций combine
и transform
. Эти функции могут преобразовать данные, считанные от хранилищ данных до ячейки таблицы 2D столбца или формата 2D ячейки столбца массивов, требуемого trainNetwork
. Для получения дополнительной информации смотрите Хранилища данных для Глубокого обучения.
Тип Datastore | Описание |
---|---|
CombinedDatastore | Горизонтально конкатенируйте данные, считанные из двух или больше базовых хранилищ данных. |
TransformedDatastore | Преобразуйте пакеты считанных данных из базового datastore согласно вашему собственному конвейеру предварительной обработки. |
AugmentedImageDatastore | Примените случайные аффинные геометрические преобразования, включая изменение размеров, вращение, отражение, сдвиг и перевод, для учебных глубоких нейронных сетей. |
PixelLabelImageDatastore | Примените идентичные аффинные геометрические преобразования к изображениям, и соответствующие заземляющие метки истины для того, чтобы обучить семантические сети сегментации (требует Computer Vision Toolbox™). |
RandomPatchExtractionDatastore | Извлеките пары случайных закрашенных фигур от изображений, или пиксельные изображения метки (требует Image Processing Toolbox™). Опционально можно применить идентичные случайные аффинные геометрические преобразования к парам закрашенных фигур. |
DenoisingImageDatastore | Применяйтесь случайным образом сгенерированный Гауссов шум для того, чтобы обучить сети шумоподавления (требует Image Processing Toolbox). |
Пользовательский мини-пакетный datastore | Создайте мини-пакеты последовательности, временных рядов или текстовых данных. Для получения дополнительной информации смотрите, Разрабатывают Пользовательский Мини-пакетный Datastore. |
X
ИзображенияИзображения, заданные как 4-D числовой массив. Первые три измерения являются высотой, шириной и каналами, и последняя размерность индексирует отдельные изображения.
Если массив содержит NaN
s, то они распространены посредством обучения. Однако в большинстве случаев обучению не удается сходиться.
Типы данных: single
| double
| uint8
| int8
| uint16
| int16
| uint32
| int32
sequences
— Последовательности или данные временных рядовПоследовательности или данные временных рядов, заданные как массив ячеек матриц или матрицы. Для входа массива ячеек sequences
является N-by-1 массив ячеек, где N является количеством наблюдений. Каждая запись sequences
является временными рядами, представленными матрицей со строками, соответствующими точкам данных и столбцам, соответствующим временным шагам.
Для проблем от последовательности к последовательности с одним наблюдением sequences
может быть D-by-S матрица, где D является количеством функций, и S является количеством временных шагов. Если sequences
является матрицей, то Y
должен быть категориальной последовательностью меток или матрицей ответов.
Для классификации последовательностей и проблем регрессии, layers
должен начаться с входного слоя последовательности.
Типы данных: cell
| single
| double
Y
ОтветыОтветы, заданные как категориальный вектор меток, матрицы, 4-D числовой массив, массив ячеек категориальных векторов - строк или массив ячеек числовых последовательностей. Формат Y
зависит от типа проблемы.
Для проблем классификации формат зависит от задачи.
Задача | Формат |
---|---|
Отобразите классификацию | N-by-1 категориальный вектор меток, где N является количеством наблюдений. |
Классификация последовательностей к метке | |
Классификация от последовательности к последовательности | N-by-1 массив ячеек категориальных последовательностей меток, где N является количеством наблюдений. Каждая последовательность имеет то же количество временных шагов как соответствующая входная последовательность. |
Для проблем классификации от последовательности к последовательности с одним наблюдением sequences
может быть матрицей. В этом случае Y
должен быть категориальной последовательностью меток.
Для проблем регрессии формат зависит от задачи.
Задача | Формат |
---|---|
Отобразите регрессию |
|
Регрессия Sequence-one | N-by-R матрица, где N является количеством наблюдений и R, является количеством ответов. |
Регрессия от последовательности к последовательности | N-by-1 массив ячеек числовых последовательностей, где N является количеством наблюдений. Последовательности являются матрицами со строками R, где R является количеством ответов. Каждая последовательность имеет то же количество временных шагов как соответствующая входная последовательность. |
Для проблем регрессии от последовательности к последовательности с одним наблюдением sequences
может быть матрицей. В этом случае Y
должен быть матрицей ответов.
Нормализация ответов часто помогает стабилизироваться и ускорить обучение нейронных сетей для регрессии. Для получения дополнительной информации смотрите, Обучают Сверточную Нейронную сеть для Регрессии.
Ответы не могут содержать NaN
s.
Типы данных: cell
| categorical
| double
tbl
Входные данныеtable
Входные данные, заданные как таблица, содержащая предикторы в первом столбце и ответы в остальном столбце или столбцах. Каждая строка в таблице соответствует наблюдению.
Расположение предикторов и ответов в столбцах таблицы зависит от типа проблемы.
Классификация
Задача | Предикторы | Ответы |
---|---|---|
Отобразите классификацию |
|
Категориальная метка |
Классификация последовательностей к метке | Путь к абсолютному или файлу прямого доступа к файлу MAT, содержащему последовательность или данные временных рядов. Файл MAT должен содержать временные ряды, представленные матрицей со строками, соответствующими точкам данных и столбцам, соответствующим временным шагам. |
Категориальная метка |
Классификация от последовательности к последовательности | Путь к абсолютному или файлу прямого доступа к файлу MAT. Файл MAT должен содержать временные ряды, представленные категориальным вектором с соответствием записей меткам для каждого временного шага. |
Для проблем классификации, если вы не задаете responseName
, затем функция, по умолчанию, использует ответы во втором столбце tbl
.
Регрессия
Задача | Предикторы | Ответы |
---|---|---|
Отобразите регрессию |
|
|
Регрессия Sequence-one | Путь к абсолютному или файлу прямого доступа к файлу MAT, содержащему последовательность или данные временных рядов. Файл MAT должен содержать временные ряды, представленные матрицей со строками, соответствующими точкам данных и столбцам, соответствующим временным шагам. |
|
Регрессия от последовательности к последовательности | Путь к абсолютному или файлу прямого доступа к файлу MAT. Файл MAT должен содержать временные ряды, представленные матрицей, где строки соответствуют ответам, и столбцы соответствуют временным шагам. |
Для проблем регрессии, если вы не задаете responseName
, затем функция, по умолчанию, использует остальные столбцы tbl
. Нормализация ответов часто помогает стабилизироваться и ускорить обучение нейронных сетей для регрессии. Для получения дополнительной информации смотрите, Обучают Сверточную Нейронную сеть для Регрессии.
Для классификации последовательностей и проблем регрессии, layers
должен начаться с входного слоя последовательности.
Ответы не могут содержать NaN
s. Если данные о предикторе содержат NaN
s, то они распространены посредством обучения. Однако в большинстве случаев обучению не удается сходиться.
Типы данных: table
responseName
— Имена переменных отклика во входной таблицеИмена переменных отклика во входной таблице, заданной как вектор символов или массив ячеек из символьных векторов. Для проблем с одним ответом responseName
является соответствующим именем переменной в tbl
. Для проблем регрессии с переменными множественного ответа responseName
является массивом ячеек соответствующих имен переменных в tbl
.
Типы данных: char | cell
layers
— NetworkLayer
| объект LayerGraph
Сетевые слои, заданные как массив Layer
или объект LayerGraph
.
Чтобы создать сеть со всеми слоями, соединенными последовательно, можно использовать массив Layer
в качестве входного параметра. В этом случае возвращенная сеть является объектом SeriesNetwork
.
Сеть направленного графа без петель (DAG) имеет комплексную структуру, в которой слои могут иметь несколько вводов и выводов. Чтобы создать сеть DAG, задайте сетевую архитектуру как объект LayerGraph
и затем используйте тот график слоя в качестве входного параметра к trainNetwork
.
Для списка встроенных слоев смотрите Список слоев глубокого обучения.
опции
Опции обученияTrainingOptionsSGDM
| TrainingOptionsRMSProp
| TrainingOptionsADAM
Опции обучения, заданные как TrainingOptionsSGDM
, TrainingOptionsRMSProp
или объект TrainingOptionsADAM
, возвращенный функцией trainingOptions
. Чтобы задать решатель и другие опции для сетевого обучения, используйте trainingOptions
.
trainedNet
— Обучивший сетьSeriesNetwork
| объект DAGNetwork
Обучивший сеть, возвращенный как объект SeriesNetwork
или объект DAGNetwork
.
Если вы обучаете сеть с помощью массива Layer
в качестве входного параметра layers
, то trainedNet
является объектом SeriesNetwork
. Если вы обучаете сеть с помощью объекта LayerGraph
в качестве входного параметра, то trainedNet
является объектом DAGNetwork
.
traininfo
— Учебная информацияУчебная информация для каждой итерации, возвращенной как структура с комбинацией следующих полей:
TrainingLoss
— Значение функции потерь в каждой итерации
TrainingAccuracy
— Учебная точность в каждой итерации
TrainingRMSE
— Учебный RMSE в каждой итерации
ValidationLoss
— Значение функции потерь для данных о валидации
ValidationAccuracy
— Точность валидации
ValidationRMSE
— Валидация RMSE
BaseLearnRate
— Темп обучения в каждой итерации
trainNetwork
возвращает значения точности для сетей классификации, значения RMSE для сетей регрессии и метрики валидации, когда вы подтверждаете сеть во время обучения. Каждое поле является числовым вектором с одним элементом на учебную итерацию. Значения, которые не были вычислены в определенной итерации, представлены NaN
.
Deep Learning Toolbox™ позволяет вам сохранить сети как .mat файлы после каждой эпохи во время обучения. Это периодическое сохранение особенно полезно, когда у вас есть большая сеть или большой набор данных, и обучение занимает много времени. Если обучение прервано по некоторым причинам, можно возобновить обучение от последней сохраненной сети контрольной точки. Если вы хотите, чтобы trainNetwork
сохранил сети контрольной точки, то необходимо задать имя пути при помощи аргумента пары "имя-значение" 'CheckpointPath'
trainingOptions
. Если путь, который вы задаете, не существует, то trainingOptions
возвращает ошибку.
trainNetwork
автоматически присваивает уникальные имена, чтобы отметить сетевые файлы контрольной точкой. На имя в качестве примера net_checkpoint__351__2018_04_12__18_09_52.mat
, 351 является номером итерации, 2018_04_12
является датой, и 18_09_52
является временем, в которое trainNetwork
сохраняет сеть. Можно загрузить сетевой файл контрольной точки путем двойного клика по нему или использования команды загрузки в командной строке. Например:
load net_checkpoint__351__2018_04_12__18_09_52.mat
trainNetwork
. Например:trainNetwork(XTrain,YTrain,net.Layers,options)
Все функции для обучения глубокому обучению, прогноза и валидации в Deep Learning Toolbox выполняют вычисления с помощью арифметики с плавающей точкой, с одинарной точностью. Функции для глубокого обучения включают trainNetwork
, predict
, classify
и activations
. Программное обеспечение использует арифметику с одинарной точностью, когда вы обучаете нейронные сети с помощью и центральных процессоров и графических процессоров.
[1] Kudo, M. J. Тояма, и М. Шимбо. "Многомерная Классификация Кривых Используя Прохождение через области". Буквы Распознавания образов. Издание 20, № 11-13, стр 1103–1111.
[2] Kudo, M. J. Тояма, и М. Шимбо. Японский набор данных гласных. https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels
Чтобы запустить вычисление параллельно, установите опцию 'ExecutionEnvironment'
на 'multi-gpu'
или 'parallel'
.
Используйте trainingOptions
, чтобы установить 'ExecutionEnvironment'
и предоставить options
к trainNetwork
. Если вы не устанавливаете 'ExecutionEnvironment'
, то trainNetwork
работает на графическом процессоре при наличии.
Для получения дополнительной информации смотрите, Увеличивают Глубокое обучение параллельно и в Облаке.
DAGNetwork
| LayerGraph
| SeriesNetwork
| analyzeNetwork
| assembleNetwork
| classify
| predict
| trainingOptions
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.