当前位置:   article > 正文

Matlab定义自定义深度学习网络中间层_matlab的layer怎么添加自己写的

matlab的layer怎么添加自己写的

有的层是没有的,或者没找到,但是比较简单,就自己定义一下,比如定义一个维度转置的层。

新建一个文件:

classdef transposeLayer < nnet.layer.Layer % & nnet.layer.Formattable (Optional)
%% 重命名为transposeLayer
    properties
        % (Optional) Layer properties.

        % Declare layer properties here.
    end

    properties (Learnable)
        % (Optional) Layer learnable parameters.

        % Declare learnable parameters here.
    end

    properties (State)
        % (Optional) Layer state parameters.

        % Declare state parameters here.
    end

    properties (Learnable, State)
        % (Optional) Nested dlnetwork objects with both learnable
        % parameters and state.

        % Declare nested networks with learnable and state parameters here.
    end

    methods
        function layer = transposeLayer()
        %%重命名层名
            % (Optional) Create a myLayer.
            % This function must have the same name as the class.
            layer.Name = "transpose";
            %%层说明,会在分析的时候显示
            layer.Description = "Transpose";

            % Define layer constructor function here.
        end

        function [Z] = predict(layer,X)
            Z = permute(X,[2 1 3]);%%转置就可以了
        end

       
    end
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

代码写好,保存的时候会自动重命名,然后在网络调用就成了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/213463
推荐阅读
相关标签
  

闽ICP备14008679号