Если вы создаете пользовательский слой глубокого обучения, то можно использовать checkLayer
функционируйте, чтобы проверять, что слой допустим. Функция проверяет, что слои для валидности, совместимости с GPU, правильно задали градиенты и совместимость генерации кода. Чтобы проверять, что слой допустим, запустите следующую команду:
checkLayer(layer,validInputSize,'ObservationDimension',dim)
layer
экземпляр слоя, validInputSize
векторный массив или массив ячеек, задающий допустимые входные размеры к слою и 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. 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. Skipping code generation compatibility tests. To check validity of the layer for code generation, specify the 'CheckCodegenCompatibility' and 'ObservationDimension' options. Running nnet.checklayer.TestLayerWithoutBackward ......... Done nnet.checklayer.TestLayerWithoutBackward __________ Test Summary: 9 Passed, 0 Failed, 0 Incomplete, 12 Skipped. Time elapsed: 0.11901 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. Skipping code generation compatibility tests. To check validity of the layer for code generation, specify the 'CheckCodegenCompatibility' and 'ObservationDimension' options. Running nnet.checklayer.TestLayerWithoutBackward .......... ... Done nnet.checklayer.TestLayerWithoutBackward __________ Test Summary: 13 Passed, 0 Failed, 0 Incomplete, 8 Skipped. Time elapsed: 0.069311 seconds.
В этом случае функция не обнаруживает проблем со слоем.
checkLayer
функционируйте проверяет валидность пользовательского слоя путем выполнения серии тестов.
checkLayer
функционируйте использует эти тесты, чтобы проверять валидность пользовательских промежуточных слоев (слои типа nnet.layer.Layer
).
Тест | Описание |
---|---|
functionSyntaxesAreCorrect | Синтаксисы функций слоя правильно заданы. |
predictDoesNotError | predict не делает ошибки. |
forwardDoesNotError | Когда задано, |
forwardPredictAreConsistentInSize | Когда |
backwardDoesNotError | Когда задано, backward не делает ошибки. |
backwardIsConsistentInSize | Когда
|
predictIsConsistentInType | Выходные параметры |
forwardIsConsistentInType | Когда |
backwardIsConsistentInType | Когда |
gradientsAreNumericallyCorrect | Когда backward задан, градиенты, вычисленные в backward сопоставимы с числовыми градиентами. |
backwardPropagationDoesNotError | Когда backward не задан, производные могут быть вычислены с помощью автоматического дифференцирования. |
codegenPragmaDefinedInClassDef | Прагма "%#codegen" поскольку генерация кода задана в файле класса. |
checkForSupportedLayerPropertiesForCodegen | Свойства слоя поддерживают генерацию кода. |
predictIsValidForCodeGeneration | predict допустимо для генерации кода. |
Тесты predictIsConsistentInType
, forwardIsConsistentInType
, и backwardIsConsistentInType
также проверяйте на совместимость с GPU. Чтобы выполнить функции слоя на графическом процессоре, функции должны поддержать вводы и выводы типа gpuArray
с базовым типом данных single
.
checkLayer
функционируйте использует эти тесты, чтобы проверять валидность пользовательских выходных слоев (слои типа nnet.layer.ClassificationLayer
или nnet.layer.RegressionLayer
).
Тест | Описание |
---|---|
forwardLossDoesNotError | forwardLoss не делает ошибки. |
backwardLossDoesNotError | backwardLoss не делает ошибки. |
forwardLossIsScalar | Выход forwardLoss isscalar. |
backwardLossIsConsistentInSize | Когда backwardLoss задан, выход backwardLoss сопоставимо в размере: dLdY одного размера с предсказаниями Y . |
forwardLossIsConsistentInType | Выход |
backwardLossIsConsistentInType | Когда |
gradientsAreNumericallyCorrect | Когда backwardLoss задан, градиенты, вычисленные в backwardLoss численно правильны. |
backwardPropagationDoesNotError | Когда backwardLoss не задан, производные могут быть вычислены с помощью автоматического дифференцирования. |
forwardLossIsConsistentInType
и backwardLossIsConsistentInType
тесты также проверяют на совместимость с GPU. Чтобы выполнить функции слоя на графическом процессоре, функции должны поддержать вводы и выводы типа gpuArray
с базовым типом данных single
.
Проверять валидность слоя, checkLayer
функция генерирует данные в зависимости от типа слоя:
Тип слоя | Описание сгенерированных данных |
---|---|
Промежуточное звено | Значения в области значений [-1,1] |
Regression выход | Предсказания и цели со значениями в области значений [-1,1] |
Classification выход | Предсказания со значениями в области значений [0,1]. Если вы задаете Если вы не задаете |
Чтобы проверять на несколько наблюдений, задайте размерность наблюдения с помощью 'ObservationDimension'
пара "имя-значение". Если вы задаете размерность наблюдения, то checkLayer
функционируйте проверяет, что функции слоя являются сгенерированными данными допустимого использования с мини-пакетами размера 1 и 2. Если вы не задаете эту пару "имя-значение", то функция пропускает тесты, которые проверяют, что функции слоя допустимы для нескольких наблюдений.
Если тест перестал работать, когда вы используете checkLayer
, затем функция обеспечивает тестовую диагностику и диагностику в среде. Тестовая диагностика подсвечивает любые проблемы, найденные со слоем. Диагностика в среде обеспечивает более подробную информацию.
Тест functionSyntaxesAreCorrect
проверки, что функции слоя правильно задали синтаксисы.
Тестовая диагностика | Описание | Возможное решение |
---|---|---|
Incorrect number of input arguments for 'predict' in Layer . | Синтаксис для predict функция не сопоставима с количеством входных параметров слоя. | Задайте правильное количество аргументов ввода и вывода в Синтаксис для [Z1,…,Zm] = predict(layer,X1,…,Xn) X1,…,Xn n входные параметры слоя и Z1,…,Zm m слой выходные параметры. Значения n и m должен соответствовать NumInputs и NumOutputs свойства слоя.Совет Если количество входных параметров к Совет Если пользовательский слой имеет |
Incorrect number of output arguments for 'predict' in Layer | Синтаксис для predict функция не сопоставима с количеством слоя выходные параметры. | |
Incorrect number of input arguments for 'forward' in Layer | Синтаксис для дополнительного forward функция не сопоставима с количеством входных параметров слоя. | Задайте правильное количество аргументов ввода и вывода в Синтаксис для [Z1,…,Zm,memory] = forward(layer,X1,…,Xn) X1,…,Xn n входные параметры слоя, Z1,…,Zm m слой выходные параметры и memory память о слое.Совет Если количество входных параметров к Совет Если пользовательский слой имеет |
Incorrect number of output arguments for 'forward' in Layer | Синтаксис для дополнительного forward функция не сопоставима с количеством слоя выходные параметры. | |
Incorrect number of input arguments for 'backward' in Layer | Синтаксис для дополнительного backward функция не сопоставима с количеством вводов и выводов слоя. | Задайте правильное количество аргументов ввода и вывода в Синтаксис для [dLdX1,…,dLdXn,dLdW1,…,dLdWk] = backward(layer,X1,…,Xn,Z1,…,Zm,dLdZ1,…,dLdZm,memory)
Для выходных параметров, Совет Если количество входных параметров к Если количество выходных параметров может варьироваться, то используйте Совет Если слой вперед функции поддерживает |
Incorrect number of output arguments for 'backward' in Layer | Синтаксис для дополнительного backward функция не сопоставима с количеством слоя выходные параметры. |
Для слоев с несколькими вводами или выводами необходимо установить значения свойств слоя NumInputs
(или альтернативно, InputNames
) и NumOutputs
(или альтернативно, OutputNames
) в функции конструктора слоя, соответственно.
checkLayer
функционируйте проверяет, что функции слоя допустимы для сингла и нескольких наблюдений. Чтобы проверять на несколько наблюдений, задайте размерность наблюдения с помощью 'ObservationDimension'
пара "имя-значение". Если вы задаете размерность наблюдения, то checkLayer
функционируйте проверяет, что функции слоя являются сгенерированными данными допустимого использования с мини-пакетами размера 1 и 2. Если вы не задаете эту пару "имя-значение", то функция пропускает тесты, которые проверяют, что функции слоя допустимы для нескольких наблюдений.
Тестовая диагностика | Описание | Возможное решение |
---|---|---|
Skipping multi-observation tests. To enable checks with multiple observations, specify the 'ObservationDimension' parameter in checkLayer . | Если вы не задаете 'ObservationDimension' параметр в checkLayer , затем функция пропускает тесты, которые проверяют данные с несколькими наблюдениями. | Используйте команду Для получения дополнительной информации смотрите Входные Размеры Слоя. |
Эти тесты проверяют, что слои не делают ошибки когда переданные входные данные допустимого размера.
Промежуточные Слои. Тесты predictDoesNotError
, forwardDoesNotError
, и backwardDoesNotError
проверяйте, что функции слоя не делают ошибки когда переданные входные параметры допустимого размера. Если вы задаете размерность наблюдения, то функция проверяет слой и на одно наблюдение и на несколько наблюдений.
Тестовая диагностика | Описание | Возможное решение |
---|---|---|
The function 'predict' threw an error: | predict функциональные ошибки, когда переданные данные размера validInputSize . | Исправьте ошибку, описанную в Совет Если слой вперед функции поддерживает |
The function 'forward' threw an error: | Дополнительный forward функциональные ошибки, когда переданные данные размера validInputSize . | |
The function 'backward' threw an error: | Дополнительный backward функциональные ошибки, когда передано выход predict . |
Выходной слой. Тесты forwardLossDoesNotError
и backwardLossDoesNotError
проверяйте, что функции слоя не делают ошибки когда переданные входные параметры допустимого размера. Если вы задаете размерность наблюдения, то функция проверяет слой и на одно наблюдение и на несколько наблюдений.
Тестовая диагностика | Описание | Возможное решение |
---|---|---|
The function 'forwardLoss' threw an error: | forwardLoss функциональные ошибки, когда переданные данные размера validInputSize . | Исправьте ошибку, описанную в Совет Если |
The function 'backwardLoss' threw an error: | Дополнительный backwardLoss функциональные ошибки, когда переданные данные размера validInputSize . |
Эти тесты проверяют, что функция слоя выходные параметры сопоставима в размере.
Промежуточные Слои. Тест backwardIsConsistentInSize
проверки, что backward
функционируйте выходные производные правильного размера.
Синтаксис для backward
[dLdX1,…,dLdXn,dLdW1,…,dLdWk] = backward(layer,X1,…,Xn,Z1,…,Zm,dLdZ1,…,dLdZm,memory)
X1,…,Xn
n
входные параметры слоя
Z1,…,Zm
m
выходные параметры слоя передают функции
dLdZ1,…,dLdZm
градиенты, назад распространенные от следующего слоя
memory
выход memory forward
если forward
задан, в противном случае, memory
[]
.
Для выходных параметров, dLdX1,…,dLdXn
производные потери относительно входных параметров слоя и dLdW1,…,dLdWk
производные потери относительно k
настраиваемые параметры. Чтобы уменьшать использование памяти путем предотвращения неиспользуемых переменных, являющихся сохраненным между прямым и обратным проходом, замените соответствующие входные параметры на ~
.
Совет
Если количество входных параметров к backward
может варьироваться, затем использовать varargin
вместо входных параметров после layer
. В этом случае, varargin
массив ячеек входных параметров, где varargin{i}
соответствует Xi
для i
=1, …, NumInputs
, varargin{NumInputs+j}
и varargin{NumInputs+NumOutputs+j}
соответствуйте Zj
и dLdZj
, соответственно, для j
=1, …, NumOutputs
, и varargin{end}
соответствует memory
.
Если количество выходных параметров может варьироваться, то используйте varargout
вместо выходных аргументов. В этом случае, varargout
массив ячеек выходных параметров, где varargout{i}
соответствует dLdXi
для i
=1, …, NumInputs
и varargout{NumInputs+t}
соответствует dLdWt
для t
=1, …, k
, где k
количество настраиваемых параметров.
Производные dLdX1
, …, dLdXn
должен быть одного размера с соответствующими входными параметрами слоя и dLdW1,…,dLdWk
должен быть одного размера с соответствующими настраиваемыми параметрами. Размеры должны быть сопоставимы для входных данных с синглом и несколькими наблюдениями.
Тестовая диагностика | Описание | Возможное решение |
---|---|---|
Incorrect size of 'dLdX' for 'backward' . | Производные потери относительно входных параметров слоя должны быть одного размера с соответствующим входом слоя. | Возвратите производные |
Incorrect size of the derivative of the loss with respect to the input 'in1' for 'backward' | ||
The size of 'Z' returned from 'forward' must be the same as for 'predict' . | Выходные параметры predict должен быть одного размера с соответствующими выходными параметрами forward . | Возвратите выходные параметры |
Incorrect size of the derivative of the loss with respect to 'W' for 'backward' . | Производные потери относительно настраиваемых параметров должны быть одного размера с соответствующими настраиваемыми параметрами. | Возвратите производные |
Совет
Если слой вперед функции поддерживает dlarray
объекты, затем программное обеспечение автоматически определяет обратную функцию, и вы не должны задавать backward
функция. Для списка функций та поддержка dlarray
объекты, см. Список Функций с Поддержкой dlarray.
Выходной слой. Тест forwardLossIsScalar
проверки, что выход forwardLoss
функция является скаляром. Когда backwardLoss
функция задана, тест backwardLossIsConsistentInSize
проверки, что выходные параметры forwardLoss
и backwardLoss
имеют правильный размер.
Синтаксис для forwardLoss
loss = forwardLoss(layer, Y, T)
. Вход Y
соответствует предсказаниям, сделанным сетью. Этими предсказаниями является выход предыдущего слоя. Вход T
соответствует учебным целям. Выход loss
потеря между Y
и T
согласно заданной функции потерь. Выход loss
должен быть скаляр.
Если forwardLoss
функционируйте поддерживает dlarray
объекты, затем программное обеспечение автоматически определяет обратную функцию потерь, и вы не должны задавать backwardLoss
функция. Для списка функций та поддержка dlarray
объекты, см. Список Функций с Поддержкой dlarray.
Синтаксис для backwardLoss
dLdY = backwardLoss(layer, Y, T)
. Вход Y
содержит предсказания, сделанные сетью и T
содержит учебные цели. Выход dLdY
производная потери относительно предсказаний Y
. Выход dLdY
должен быть одного размера с входом Y
слоя.
Тестовая диагностика | Описание | Возможное решение |
---|---|---|
Incorrect size of 'loss' for 'forwardLoss' . | Выход loss из forwardLoss должен быть скаляр. | Возвратите выход |
Incorrect size of the derivative of loss 'dLdY' for 'backwardLoss' . | Когда backwardLoss задан, производные потери относительно входа слоя должны быть одного размера с входом слоя. | Возвратите производный Если |
Эти тесты проверяют, что функция слоя, выходные параметры сопоставимы в типе и что функциями слоя является совместимый графический процессор.
Если слой вперед функции полностью поддерживает dlarray
объекты, затем слоем является совместимый графический процессор. В противном случае, чтобы быть совместимым графическим процессором, функции слоя должны поддержать входные параметры и возвратить выходные параметры типа gpuArray
(Parallel Computing Toolbox).
Много поддержки встроенных функций MATLAB® gpuArray
(Parallel Computing Toolbox) и dlarray
входные параметры. Для списка функций та поддержка dlarray
объекты, см. Список Функций с Поддержкой dlarray. Для списка функций, которые выполняются на графическом процессоре, смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox). Чтобы использовать графический процессор для глубокого обучения, у вас должен также быть CUDA®, включенный NVIDIA®, графический процессор с вычисляет возможность 3.0 или выше. Для получения дополнительной информации о работе с графическими процессорами в MATLAB смотрите, что графический процессор Вычисляет в MATLAB (Parallel Computing Toolbox).
Промежуточные Слои. Тесты predictIsConsistentInType
, forwardIsConsistentInType
, и backwardIsConsistentInType
проверяйте что выходные переменные функций слоя правильного типа данных. Тесты проверяют, что функции слоя возвращают сопоставимые типы данных когда данный входные параметры типов данных single
'double'
, и gpuArray
с базовыми типами single
или double
.
Совет
Если вы предварительно выделяете массивы с помощью функций как zeros
, затем необходимо гарантировать, что типы данных этих массивов сопоставимы с входными параметрами функции слоя. Чтобы создать массив нулей совпадающего типа данных другого массива, используйте 'like'
опция zeros
. Например, чтобы инициализировать массив нулей размера sz
с совпадающим типом данных как массив X
, используйте Z = zeros(sz,'like',X)
.
Тестовая диагностика | Описание | Возможное решение |
---|---|---|
Incorrect type of 'Z' for 'predict' . | Типы выходных параметров Z1,…,Zm из predict функция должна быть сопоставима с входными параметрами X1,…,Xn . | Возвратите выходные параметры |
Incorrect type of output 'out1' for 'predict' . | ||
Incorrect type of 'Z' for 'forward' . | Типы выходных параметров Z1,…,Zm из дополнительного forward функция должна быть сопоставима с входными параметрами X1,…,Xn . | |
Incorrect type of output 'out1' for 'forward' . | ||
Incorrect type of 'dLdX' for 'backward' . | Типы производных dLdX1,…,dLdXn из дополнительного backward функция должна быть сопоставима с входными параметрами X1,…,Xn . | Возвратите производные |
Incorrect type of the derivative of the loss with respect to the input 'in1' for 'backward' . | ||
Incorrect type of the derivative of loss with respect to 'W' for 'backward' . | Тип производной потери настраиваемых параметров должен быть сопоставим с соответствующими настраиваемыми параметрами. | Для каждого настраиваемого параметра возвратите производную с тем же типом как соответствующий настраиваемый параметр. |
Совет
Если слой вперед функции поддерживает dlarray
объекты, затем программное обеспечение автоматически определяет обратную функцию, и вы не должны задавать backward
функция. Для списка функций та поддержка dlarray
объекты, см. Список Функций с Поддержкой dlarray.
Выходной слой. Тесты forwardLossIsConsistentInType
и backwardLossIsConsistentInType
проверяйте что выходные переменные функций слоя правильного типа данных. Тесты проверяют, что слои возвращают сопоставимые типы данных когда данный входные параметры типов данных single
'double'
, и gpuArray
с базовыми типами single
или double
.
Тестовая диагностика | Описание | Возможное решение |
---|---|---|
Incorrect type of 'loss' for 'forwardLoss' . | Тип выхода loss из forwardLoss функция должна быть сопоставима с входом Y . | Возвратите |
Incorrect type of the derivative of loss 'dLdY' for 'backwardLoss' . | Тип выхода dLdY из дополнительного backwardLoss функция должна быть сопоставима с входом Y . | Возвратите |
Совет
Если forwardLoss
функционируйте поддерживает dlarray
объекты, затем программное обеспечение автоматически определяет обратную функцию потерь, и вы не должны задавать backwardLoss
функция. Для списка функций та поддержка dlarray
объекты, см. Список Функций с Поддержкой dlarray.
Тест gradientsAreNumericallyCorrect
проверки, что градиенты, вычисленные функциями слоя, численно правильны. Тест backwardPropagationDoesNotError
проверки, что производные могут быть вычислены с помощью автоматического дифференцирования.
Промежуточные Слои. Когда дополнительный backward
функция не задана, тест backwardPropagationDoesNotError
проверки, что производные могут быть вычислены с помощью автоматического дифференцирования. Когда дополнительный backward
функция задана, тест gradientsAreNumericallyCorrect
тесты, что градиенты вычисляются в backward
численно правильны.
Тестовая диагностика | Описание | Возможное решение |
---|---|---|
Expected a dlarray with no dimension labels, but instead found labels . | Когда дополнительный backward функция не задана, слой, прямые функции должны вывести dlarray объекты без меток размерности. | Убедитесь, что любой dlarray объекты, созданные в слое прямые функции, не содержат метки размерности. |
Unable to backward propagate through the layer. Check that the 'forward' function fully supports automatic differentiation. Alternatively, implement the 'backward' function manually . | Один или несколько из следующего:
| Проверяйте, что прямые функции поддерживают Проверяйте что производные входа В качестве альтернативы задайте пользовательскую обратную функцию путем создания функции с именем |
Unable to backward propagate through the layer. Check that the 'predict' function fully supports automatic differentiation. Alternatively, implement the 'backward' function manually . | ||
The derivative 'dLdX' for 'backward' is inconsistent with the numerical gradient . | Один или несколько из следующего:
| Если слой вперед функции поддерживает Проверяйте что производные в Если производные правильно вычисляются, то в Если абсолютные и относительные погрешности в приемлемом поле допуска, то можно проигнорировать эту тестовую диагностику. |
The derivative of the loss with respect to the input 'in1' for 'backward' is inconsistent with the numerical gradient . | ||
The derivative of loss with respect to 'W' for 'backward' is inconsistent with the numerical gradient . |
Совет
Если слой вперед функции поддерживает dlarray
объекты, затем программное обеспечение автоматически определяет обратную функцию, и вы не должны задавать backward
функция. Для списка функций та поддержка dlarray
объекты, см. Список Функций с Поддержкой dlarray.
Выходной слой. Когда дополнительный backwardLoss
функция не задана, тест backwardPropagationDoesNotError
проверки, что производные могут быть вычислены с помощью автоматического дифференцирования. Когда дополнительный backwardLoss
функция задана, тест gradientsAreNumericallyCorrect
тесты, что градиенты вычисляются в backwardLoss
численно правильны.
Тестовая диагностика | Описание | Возможное решение |
---|---|---|
Expected a dlarray with no dimension labels, but instead found labels | Когда дополнительный backwardLoss функция не задана, forwardLoss функция должна вывести dlarray объекты без меток размерности. | Убедитесь, что любой dlarray объекты создаются в forwardLoss функция не содержит метки размерности. |
Unable to backward propagate through the layer. Check that the 'forwardLoss' function fully supports automatic differentiation. Alternatively, implement the 'backwardLoss' function manually | Один или несколько из следующего:
| Проверяйте что Проверяйте что производные входа В качестве альтернативы задайте пользовательскую обратную функцию потерь путем создания функции с именем |
The derivative 'dLdY' for 'backwardLoss' is inconsistent with the numerical gradient . | Один или несколько из следующего:
| Проверяйте что производные в Если производные правильно вычисляются, то в Если абсолютные и относительные погрешности в приемлемом поле допуска, то можно проигнорировать эту тестовую диагностику. |
Совет
Если forwardLoss
функционируйте поддерживает dlarray
объекты, затем программное обеспечение автоматически определяет обратную функцию потерь, и вы не должны задавать backwardLoss
функция. Для списка функций та поддержка dlarray
объекты, см. Список Функций с Поддержкой dlarray.
Если вы устанавливаете 'CheckCodegenCompatibility'
опция к true
, затем checkLayer
функционируйте проверяет слой на совместимость генерации кода.
Тест codegenPragmaDefinedInClassDef
проверки, что определение слоя содержит прагму генерации кода %#codegen
. Тест checkForSupportedLayerPropertiesForCodegen
проверки, что свойства слоя поддерживают генерацию кода. Тест predictIsValidForCodegeneration
проверки, что выходные параметры predict
сопоставимы в размерности и обрабатывают размер в пакетном режиме.
Генерация кода поддерживает промежуточные слои с 2D входом изображений только.
Тестовая диагностика | Описание | Возможное решение |
---|---|---|
Specify '%#codegen' in the class definition of custom layer | Определение слоя не включает прагму "%#codegen" для генерации кода. |
Добавьте |
Nonscalar layer properties must be type single or double or character array for custom layer | Слой содержит нескалярные свойства типа кроме одного, дважды, или символьный массив. | Преобразуйте нескалярные свойства использовать представление одного типа, дважды, или символьный массив. Например, преобразуйте категориальный массив в массив целых чисел типа |
Scalar layer properties must be numeric, logical, or string for custom layer | Слой содержит скалярные свойства типа кроме числового, логического, или строка. | Преобразуйте скалярные свойства использовать числовое представление или представление логического типа или строка. Например, преобразуйте категориальный скаляр в целое число типа |
For code generation, 'Z' must have the same number of dimensions as the layer input . | Количество размерностей выхода | В |
For code generation, 'Z' must have the same batch size as the layer input . | Размер пакетного размера выхода | В |