主要内容

multiplicationLayer

R2026b

相乘层

描述

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

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

创建对象

描述

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

示例

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

示例

属性

全部展开

此属性在创建对象后是只读的。要设置此属性,请在创建 MultiplicationLayer 对象时使用对应的位置输入参量。

层的输入数,表示为大于或等于 2 的正整数。

输入的名称为 'in1'、'in2' 和 'inN',其中 N 是输入数。例如,如果输入数为 3,则输入的名称为 'in1'、'in2' 和 'in3'。使用 connectLayers 或 disconnectLayers 函数连接层或断开层时,请使用这些输入名称。

数据类型: double

层名称,指定为字符向量。对于 Layer 数组输入,trainnet 和 dlnetwork 函数会自动为未命名层指定名称。

数据类型: char

此 属性 为只读。

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

数据类型: cell

此 属性 为只读。

层的输出数,表示为 1。此层只有一个输出。

数据类型: double

此 属性 为只读。

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

示例

全部折叠

创建一个具有两个输入且名称为 '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 中推出

全部展开