How to add new properties (layer name) in DlconvOp.m in deep network training

2 views (last 30 days)
Thanks for the new feature of custom layer backward function which allow me to add my new functions during the training of deep convolutional neural network. In the DlconvOp.m file, there are for properties {paddingSize,stride,dilation,numGroups}; How to add a new property such as current layer index or layer name in the function so I can update my weights according?

Accepted Answer

Srivardhan Gadila
Srivardhan Gadila on 10 Feb 2021
"Name" is already a property of the custom layer whereas you can define the "Index" property under the Optional Properties. You can do something like below:
classdef myLayer < nnet.layer.Layer
% (Optional) Layer properties.
% Layer properties go here.
properties (Learnable)
% (Optional) Layer learnable parameters.
% Layer learnable parameters go here.
function layer = myLayer(layerName, layerIndex)
% (Optional) Create a myLayer.
% This function must have the same name as the class.
% Layer constructor function goes here.
layer.Name = layerName;
layer.LayerIndex = layerIndex;
function [Z1, , Zm] = predict(layer, X1, , Xn)
% Layer forward function for prediction goes here.
function [dLdX1, , dLdXn, dLdW1, , dLdWk] = ...
backward(layer, X1, , Xn, Z1, , Zm, dLdZ1, , dLdZm, memory)
% (Optional) Backward propagate the derivative of the loss
% function through the layer.
And use it as follows:
MyLayer = myLayer("MyCustomLayer",1)
You can refer to Define Custom Deep Learning Layer with Learnable Parameters for more information.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by