39 lines
No EOL
1 KiB
Matlab
39 lines
No EOL
1 KiB
Matlab
classdef myLReLULayer < nnet.layer.Layer
|
|
|
|
properties
|
|
|
|
% Scaling coefficient
|
|
Alpha
|
|
end
|
|
|
|
methods
|
|
function layer = myLReLULayer(scale, name)
|
|
% Create an examplePreluLayer with numChannels channels
|
|
|
|
% Set layer name
|
|
if nargin == 2
|
|
layer.Name = name;
|
|
end
|
|
|
|
% Set layer description
|
|
layer.Description = ...
|
|
['myLReLULayer with ', num2str(scale), ' channels'];
|
|
|
|
layer.Alpha = scale;
|
|
end
|
|
|
|
function Z = predict(layer, X)
|
|
% Forward input data through the layer and output the result
|
|
|
|
Z = max(X, layer.Alpha*X);
|
|
end
|
|
|
|
function dLdX= backward(layer, X, Z, dLdZ, memory)
|
|
% Backward propagate the derivative of the loss function through
|
|
% the layer
|
|
|
|
dLdX = layer.Alpha*dLdZ;
|
|
dLdX(X>0) = dLdZ(X>0);
|
|
end
|
|
end
|
|
end |