Проверяйте валидность пользовательского слоя
checkLayer(layer,validInputSize)
checkLayer(layer,validInputSize,'ObservationDimension',dim)
checkLayer(
проверяет валидность пользовательского слоя с помощью сгенерированных данных размеров в layer
,validInputSize
)validInputSize
. Для слоев с одним входом, набор validInputSize
к типичному размеру входных данных к слою. Для слоев с несколькими входными параметрами, набор validInputSize
к массиву ячеек типичных размеров, где каждый элемент соответствует входу слоя.
checkLayer(
задает размерность данных, которые соответствуют наблюдениям. Если вы задаете этот параметр, то функция проверяет слой и на одно наблюдение и на несколько наблюдений.layer
,validInputSize
,'ObservationDimension',dim
)
Проверяйте валидность примера пользовательский слой preluLayer
.
Задайте пользовательский слой PReLU. Чтобы создать этот слой, сохраните файл preluLayer.m
в текущей папке.
Создайте экземпляр слоя и проверяйте, что это - допустимое использование checkLayer
. Установите допустимый входной размер на типичный размер одного входа наблюдения к слою. Для одного входа слой ожидает наблюдения за размером h w c, где h, w, и c являются высотой, шириной и количеством каналов предыдущего слоя вывод, соответственно.
Задайте validInputSize
как типичный размер входного массива.
layer = preluLayer(20,'prelu');
validInputSize = [5 5 20];
checkLayer(layer,validInputSize)
Skipping multi-observation tests. To enable tests with multiple observations, specify the 'ObservationDimension' option in checkLayer. For 2-D image data, set 'ObservationDimension' to 4. For 3-D image data, set 'ObservationDimension' to 5. For sequence data, set 'ObservationDimension' to 2. Skipping GPU tests. No compatible GPU device found. Running nnet.checklayer.TestCase .......... ... Done nnet.checklayer.TestCase __________ Test Summary: 13 Passed, 0 Failed, 0 Incomplete, 11 Skipped. Time elapsed: 1.532 seconds.
Результаты показывают количество переданных, проваленных, и пропущенных тестов. Если вы не задаете опцию 'ObservationsDimension'
или не имеете графического процессора, то функция пропускает соответствующие тесты.
Проверяйте несколько наблюдений
Для входа мультинаблюдения слой ожидает массив наблюдений за размером h w c N, где h, w, и c являются высотой, шириной и количеством каналов, соответственно, и N является количеством наблюдений.
Чтобы проверять валидность слоя на несколько наблюдений, задайте типичный размер наблюдения и установите 'ObservationDimension'
на 4.
layer = preluLayer(20,'prelu'); validInputSize = [5 5 20]; checkLayer(layer,validInputSize,'ObservationDimension',4)
Skipping GPU tests. No compatible GPU device found. Running nnet.checklayer.TestCase .......... ........ Done nnet.checklayer.TestCase __________ Test Summary: 18 Passed, 0 Failed, 0 Incomplete, 6 Skipped. Time elapsed: 2.196 seconds.
В этом случае функция не обнаруживает проблем со слоем.
layer
— Customnnet.layer.Layer
| объект nnet.layer.ClassificationLayer
| объект nnet.layer.RegressionLayer
Пользовательский слой, заданный как объект nnet.layer.Layer
, объект nnet.layer.ClassificationLayer
или объект nnet.layer.RegressionLayer
. Для примера, показывающего, как задать ваш собственный слой, смотрите, Задают Пользовательский Слой Глубокого обучения с Параметрами Learnable.
validInputSize
— ValidДопустимые входные размеры слоя, заданного как вектор положительных целых чисел или массив ячеек векторов положительных целых чисел.
Для слоев с одним входом задайте validInputSize
как вектор целых чисел, соответствующих размерностям входных данных. Например, [5 5 10]
соответствует допустимым входным данным размера 5 5 на 10.
Для слоев с несколькими входными параметрами задайте validInputSize
как массив ячеек векторов, где каждый вектор соответствует входу слоя, и элементы векторов соответствуют размерностям соответствующих входных данных. Например, {[24 24 20],[24 24 10]}
соответствует допустимым входным размерам двух входных параметров, где 24 24 20 допустимый входной размер для первого входа, и 24 24 10 допустимый входной размер для второго входа.
Для получения дополнительной информации смотрите Входные Размеры Слоя.
Для больших входных размеров проверки градиента занимают больше времени, чтобы запуститься. Чтобы ускорить тесты, задайте меньший допустимый входной размер.
Пример: [5 5 10]
Пример: {[24 24 20],[24 24 10]}
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| cell
dim
Размерность наблюденияРазмерность наблюдения, заданная как положительное целое число.
Размерность наблюдения задает, какая размерность входных данных слоя соответствует наблюдениям. Например, если слой ожидает, что входные данные имеют размер h-by-w-by-c-by-N, где h, w и c соответствуют высоте, ширине и количеству каналов входных данных, соответственно, и N соответствует количеству наблюдений, затем размерность наблюдения равняется 4. Для получения дополнительной информации смотрите Входные Размеры Слоя.
Если вы задаете размерность наблюдения, то функция checkLayer
проверяет, что функции уровня являются сгенерированными данными допустимого использования с мини-пакетами размера 1 и 2. Если вы не задаете размерность наблюдения, то функция пропускает соответствующие тесты.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Для каждого слоя допустимый входной размер и размерность наблюдения зависят от вывода предыдущего слоя.
Для промежуточных слоев (слои типа nnet.layer.Layer
), допустимый входной размер и размерность наблюдения зависят от типа ввода данных к слою. Для слоев с одним входом задайте validInputSize
как вектор целых чисел, соответствующих размерностям входных данных. Для слоев с несколькими входными параметрами задайте validInputSize
как массив ячеек векторов, где каждый вектор соответствует входу слоя, и элементы векторов соответствуют размерностям соответствующих входных данных.
Для больших входных размеров проверки градиента занимают больше времени, чтобы запуститься. Чтобы ускорить тесты, задайте меньший допустимый входной размер.
Вход слоя | Введите размер | Размерность наблюдения |
---|---|---|
2D изображения | h-by-w-by-c-by-N, где h, w и c соответствуют высоте, ширине, и количеству каналов изображений соответственно и N, является количеством наблюдений. | 4 |
3-D изображения | h-by-w-by-D-by-c-by-N, где h, w, D и c соответствуют высоте, ширине, глубине, и количеству каналов 3-D изображений соответственно и N, является количеством наблюдений. | 5 |
Векторные последовательности | c-by-N-by-S, где c является количеством функций последовательностей, N, является количеством наблюдений, и S является длиной последовательности. | 2 |
2D последовательности изображений | h-by-w-by-c-by-N-by-S, где h, w и c соответствуют высоте, ширине и количеству каналов изображений соответственно, N, является количеством наблюдений, и S является длиной последовательности. | 4 |
3-D последовательности изображений | h-by-w-by-d-by-c-by-N-by-S, где h, w, d и c соответствуют высоте, ширине, глубине и количеству каналов 3-D изображений соответственно, N, является количеством наблюдений, и S является длиной последовательности. | 5 |
Например, для 2D проблем классификации изображений, устанавливает validInputSize
на [h w c]
, где h
, w
и c
соответствуют высоте, ширине, и количеству каналов изображений, соответственно, и 'ObservationDimension'
к 4
.,
Для выходных слоев (слои типа nnet.layer.ClassificationLayer
или nnet.layer.RegressionLayer
), устанавливает validInputSize
на типичный размер одного входного наблюдения Y
к слою.
Для проблем классификации допустимый входной размер и размерность наблюдения Y
зависят от типа проблемы:
Задача классификации | Введите размер | Размерность наблюдения |
---|---|---|
2D классификация изображений | 1 1 K N, где K является количеством классов и N, количество наблюдений. | 4 |
3-D классификация изображений | 1 1 1 K N, где K является количеством классов и N, количество наблюдений. | 5 |
Классификация последовательностей к метке | K-by-N, где K является количеством классов и N, является количеством наблюдений. | 2 |
Классификация от последовательности к последовательности | K-by-N-by-S, где K является количеством классов, N, является количеством наблюдений, и S является длиной последовательности. | 2 |
Например, для 2D проблем классификации изображений, устанавливает validInputSize
на [1 1 K]
, где K
является количеством классов и 'ObservationDimension'
к 4
.
Для проблем регрессии размерности Y
также зависят от типа проблемы. Следующая таблица описывает размерности Y
.
Задача регрессии | Введите размер | Размерность наблюдения |
---|---|---|
2D регрессия изображений | 1 1 R N, где R является количеством ответов и N, количество наблюдений. | 4 |
2D регрессия От изображения к изображению | h-by-w-by-c-by-N , где h, w и c являются высотой, шириной, и количеством каналов вывода соответственно и N, является количеством наблюдений. | 4 |
3-D регрессия изображений | 1 1 1 R N, где R является количеством ответов и N, количество наблюдений. | 5 |
3-D регрессия От изображения к изображению | h-by-w-by-d-by-c-by-N , где h, w, d и c являются высотой, шириной, глубиной, и количеством каналов вывода соответственно и N, является количеством наблюдений. | 5 |
Регрессия Sequence-one | R-by-N, где R является количеством ответов и N, является количеством наблюдений. | 2 |
Регрессия от последовательности к последовательности | R-by-N-by-S, где R является количеством ответов, N, является количеством наблюдений, и S является длиной последовательности. | 2 |
Например, для 2D проблем регрессии изображений, устанавливает validInputSize
на [1 1 R]
, где R
является количеством ответов и 'ObservationDimension'
к 4
.
Функция checkLayer
проверяет валидность пользовательского слоя путем выполнения серии тестов, описанных в этих таблицах. Для получения дополнительной информации о тестах, используемых checkLayer
, смотрите Проверку Пользовательская Валидность Слоя.
Функция checkLayer
использует эти тесты, чтобы проверять валидность пользовательских промежуточных слоев (слои типа nnet.layer.Layer
).
Тест | Описание |
---|---|
methodSignaturesAreCorrect | Синтаксисы функций уровня правильно заданы. |
predictDoesNotError | predict не делает ошибки. |
forwardDoesNotError |
|
forwardPredictAreConsistentInSize |
|
backwardDoesNotError | backward не делает ошибки. |
backwardIsConsistentInSize | Выходные параметры
|
predictIsConsistentInType | Выходные параметры |
forwardIsConsistentInType | Выходные параметры |
backwardIsConsistentInType | Выходные параметры |
gradientsAreNumericallyCorrect | Градиенты, вычисленные в backward , сопоставимы с числовыми градиентами. |
Тесты predictIsConsistentInType
, forwardIsConsistentInType
и backwardIsConsistentInType
также проверяют на совместимость графического процессора. Чтобы выполнить функции уровня на графическом процессоре, функции должны поддержать вводы и выводы типа gpuArray
с базовым типом данных single
.
Если вы не реализовали forward
, то checkLayer
не запускает forwardDoesNotError
, forwardPredictAreConsistentInSize
и тесты forwardIsConsistentInType
.
Функция checkLayer
использует эти тесты, чтобы проверять валидность пользовательских выходных слоев (слои типа nnet.layer.ClassificationLayer
или nnet.layer.RegressionLayer
).
Тест | Описание |
---|---|
forwardLossDoesNotError | forwardLoss не делает ошибки. |
backwardLossDoesNotError | backwardLoss не делает ошибки. |
forwardLossIsScalar | Вывод forwardLoss является скаляром. |
backwardLossIsConsistentInSize | Вывод backwardLoss сопоставим в размере: dLdY одного размера как прогнозы Y . |
forwardLossIsConsistentInType | Вывод |
backwardLossIsConsistentInType | Вывод |
gradientsAreNumericallyCorrect | Градиенты, вычисленные в backwardLoss , численно правильны. |
forwardLossIsConsistentInType
и тесты backwardLossIsConsistentInType
также проверяют на совместимость графического процессора. Чтобы выполнить функции уровня на графическом процессоре, функции должны поддержать вводы и выводы типа gpuArray
с базовым типом данных single
.
analyzeNetwork
| trainNetwork
| trainingOptions
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.