主要内容

multiplicationLayer

相乘层

说明

相乘层按元素将来自多个神经网络层的输入相乘。

在您创建层时指定层的输入数。层的输入的名称为 'in1','in2',...,'inN',其中 N 是输入数目。使用 connectLayersdisconnectLayers 连接层或断开层时,请分别使用这些输入名称。相乘层的输入大小必须在所有维度上相同,或者至少在一个维度上相同且其他维度为单一维度。

创建对象

描述

layer = multiplicationLayer(numInputs) 创建一个相乘层,按元素对 numInputs 输入进行乘法运算。此函数还设置 NumInputs 属性。

示例

layer = multiplicationLayer(numInputs,'Name',name) 还设置 Name 属性。

示例

属性

全部展开

层的输入数,指定为大于或等于 2 的正整数。

输入的名称为 'in1','in2',...,'inN',其中 NNumInputs。例如,如果 NumInputs 为 3,则输入的名称为 'in1','in2''in3'。使用 connectLayersdisconnectLayers 函数连接层或断开层时,请使用这些输入名称。

层名称,指定为字符向量或字符串标量。对于 Layer 数组输入,trainnetdlnetwork 函数会自动为未命名层指定名称。

MultiplicationLayer 对象将此属性存储为字符向量。

数据类型: char | string

输入名称,指定为 {'in1','in2',...,'inN'},其中 N 是层的输入数。

数据类型: cell

此 属性 为只读。

层的输出数,存储为 1。此层只有一个输出。

数据类型: double

此 属性 为只读。

输出名称,存储为 {'out'}。此层只有一个输出。

数据类型: cell

示例

全部折叠

创建一个具有两个输入且名称为 'mul_1' 的相乘层。

mul = multiplicationLayer(2,'Name','mul_1')
mul = 
  MultiplicationLayer with properties:

          Name: 'mul_1'
     NumInputs: 2
    InputNames: {'in1'  'in2'}

   Learnable Parameters
    No properties.

   State Parameters
    No properties.

  Show all properties

创建两个 ReLU 层。

relu_1 = reluLayer('Name','relu_1');
relu_2 = reluLayer('Name','relu_2');

创建一个 dlnetwork 对象。

net = dlnetwork;

将它们添加到网络,并将它们连接到该相乘层。该相乘层将 ReLU 层的输出相乘。

net = addLayers(net,relu_1);
net = addLayers(net,relu_2);
net = addLayers(net,mul);

net = connectLayers(net,'relu_1','mul_1/in1');
net = connectLayers(net,'relu_2','mul_1/in2');

plot(net);

Figure contains an axes object. The axes object contains an object of type graphplot.

算法

全部展开

扩展功能

全部展开

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2020b 中推出

全部展开