🧠 MATLAB inputLayer
全面解析(R2023b+)
inputLayer
是 MATLAB Deep Learning Toolbox 中用于自定义格式数据输入的神经网络起始层。它为深度学习模型提供了灵活的数据格式支持,适合处理非标准结构的数据输入,如多维时序数据、组合结构数据等。
🔧 1. 函数定义与语法
layer = inputLayer(inputSize, inputFormat)
layer = inputLayer(inputSize, inputFormat, Name="customName")
inputSize
:一个向量,指定输入数据每个维度的大小,未知或可变维度可设为NaN
inputFormat
:字符串,指定每个维度的语义(如空间、时间、通道等)Name
(可选):自定义此层的名称
📐 2. 参数详解
✅ inputSize
(输入尺寸)
- 类型:
row vector
(正整数或NaN
) - 含义:输入数据每个维度的大小
- 示例:
[224 224 3]
表示 224×224 的 RGB 图像[64 3 NaN]
表示 64×3 的数据,batch 大小不定
✅ inputFormat
(输入格式说明)
- 类型:
char
或string
- 是对
inputSize
各维度的含义解释,每个字符表示一种语义:
字符 | 含义 | 说明 |
---|---|---|
S | Spatial | 空间维度,如图像宽高 |
C | Channel | 通道维度,如 RGB 三通道 |
B | Batch | 批处理维度,用于多个样本同时训练 |
T | Time | 时间维度,如序列数据中的时间步 |
U | Unspecified | 未指定维度,自定义场景可使用 |
- 示例格式说明:
"SCB"
:空间-通道-批处理"CBT"
:通道-批处理-时间"SCBT"
:空间-通道-批处理-时间(4D)
🔍 3. 属性(Properties)
属性名 | 说明 |
---|---|
InputSize | 输入数据的尺寸,固定在创建时设定 |
InputFormat | 维度的语义说明 |
Name | 层的名称(可自定义) |
NumInputs | 输入数量(始终为 0) |
NumOutputs | 输出数量(始终为 1) |
OutputNames | 输出名称(始终为 'out' ) |
📘 4. 示例:实际使用场景
✅ 示例 1:1D 图像输入层
inputSize = [64 3 NaN];
inputFormat = "SCB";
layer = inputLayer(inputSize, inputFormat);
加入网络:
layers = [
inputLayer([64 3 NaN], "SCB")
convolution1dLayer(5, 32)
reluLayer
fullyConnectedLayer(10)
softmaxLayer
];
✅ 示例 2:时空数据输入(如视频、序列图像)
inputSize = [64 3 NaN NaN];
inputFormat = "SCBT";
layer = inputLayer(inputSize, inputFormat);
适用于空间 + 通道 + 时间 + 批量的数据结构。
🧰 5. 使用建议
- 使用
inputLayer
主要用于处理 不规则格式数据,例如多维时序、多尺度图像等。 - 标准图像和序列数据建议仍使用:
imageInputLayer
sequenceInputLayer
featureInputLayer
- 可配合
trainNetwork
或dlnetwork
自定义复杂模型结构。
🚀 6. 高级特性
特性 | 是否支持 |
---|---|
GPU 加速 | ✅ 使用 GPU Coder |
C/C++ 代码生成 | ✅ 使用 MATLAB Coder |
复数输入支持(R2024a) | ✅ |
🧩 7. 与其他输入层对比
输入层 | 使用场景 | 灵活性 | 推荐版本 |
---|---|---|---|
imageInputLayer | 2D 图像 | 中 | 所有版本 |
image3dInputLayer | 3D 医学图像等 | 中 | 所有版本 |
sequenceInputLayer | 时间序列、文本 | 中 | 所有版本 |
featureInputLayer | 表格、向量型特征数据 | 中 | 所有版本 |
inputLayer | 非标准维度组合、自定义场景 | ✅ 高度灵活 | R2023b+ |
🧠 imageInputLayer
是什么?
它是 专门为 2D 图像设计的神经网络输入层,负责将图像送入网络之前进行一些准备工作,比如:
- 设置图像尺寸和通道数
- 对图像数据进行归一化处理(比如减去平均值)
- 支持处理复数图像数据(从 R2024a 开始)
简而言之,它是你构建 CNN(卷积神经网络)时最常用也最重要的起始层之一。
🧱 基本语法
layer = imageInputLayer(inputSize)
layer = imageInputLayer(inputSize, Name=Value)
其中 inputSize
是一个三元素的向量 [height, width, channels]
:
- 灰度图像:[28 28 1]
- 彩色图像:[64 64 3]
- 多光谱图像:[128 128 10](假设有 10 个光谱通道)
✨ 常用参数解析(Name-Value 对)
1. Normalization
(归一化方式)
选项名 | 作用 |
---|---|
"zerocenter" (默认) | 每个像素减去它的均值 |
"zscore" | (值 - 均值)/标准差,标准化数据 |
"rescale-zero-one" | 把数据缩放到 [0,1] 区间 |
"rescale-symmetric" | 把数据缩放到 [-1,1] 区间 |
"none" | 不归一化 |
@(x) customFunc(x) | 自定义函数 |
示例:
imageInputLayer([64 64 3], Normalization="rescale-zero-one")
2. Mean
/ StandardDeviation
/ Min
/ Max
这些参数可以配合 Normalization
手动设定归一化的统计量,默认是空 []
,训练时会自动计算。
例子(zscore标准化):
imageInputLayer([64 64 3], Normalization="zscore", ...
Mean=[0.5 0.5 0.5], StandardDeviation=[0.2 0.2 0.2])
3. SplitComplexInputs
(复数支持,R2024a 起)
复数图像?有!在雷达、医学等领域常见。
false
:保留复数形式输入(推荐新版本)true
:拆成实部和虚部两个通道
4. NormalizationDimension
控制归一化的“方式”:
设置值 | 说明 |
---|---|
"channel" | 每个通道归一化 |
"element" | 每个像素点单独归一化 |
"all" | 所有像素统一一个均值 |
"auto" (默认) | 会自动选最合适的方式 |
🧪 示例代码
示例 1:28×28 灰度图像输入层
layer = imageInputLayer([28 28 1], ...
Name="input", ...
Normalization="zerocenter");
示例 2:组合进网络中
layers = [
imageInputLayer([28 28 1])
convolution2dLayer(3, 8, Padding="same")
reluLayer
maxPooling2dLayer(2, Stride=2)
fullyConnectedLayer(10)
softmaxLayer
classificationLayer
];
适用于 MNIST 或自定义的手写数字任务。
🧩 imageInputLayer vs inputLayer
特性 | imageInputLayer | inputLayer |
---|---|---|
是否图像专用 | ✅ 是 | ❌ 不是 |
是否自动归一化 | ✅ 有多种可选方式 | ❌ 不带预处理 |
支持复数输入 | ✅ R2024a 起支持 | ✅ 更早就支持 |
适合复杂结构输入 | ❌ 不适用 | ✅ 可自定义任意维度格式 |
推荐用于 | 2D 图像 | 多维数据、非图像输入 |
🛠️ 训练建议 Tips
- 如果不想每次都重新计算归一化参数,可以手动设置
Mean
、Std
并设置训练选项ResetInputNormalization=false
- 如果用
augmentedImageDatastore
进行图像增强,imageInputLayer
会自动兼容增强后的图像尺寸 - 图像的 数据类型建议为
single
或double
,并保证维度一致,比如h×w×c×N
格式(图像尺寸 × 通道 × batch size)
🚀 扩展支持
- ✅ 支持 GPU 训练
- ✅ 支持 C/C++ 代码生成(部分功能受限)
- ✅ 支持 dlnetwork、trainnet 构建动态图网络
✅ 总结一句话
imageInputLayer
是你在 MATLAB 中做图像类深度学习任务的标准起点,处理常规图像任务(分类、回归、分割等)时,它简单、好用、功能全,能省掉很多数据预处理的工作。
MATLAB 中的 image3dInputLayer
—— 它是专门为**三维图像(3D image 或 volume data)**设计的神经网络输入层。
🧠 什么是 image3dInputLayer
?
image3dInputLayer
是 MATLAB 的 Deep Learning Toolbox 中用于接收 三维图像输入 的输入层,通常用于处理以下类型的数据:
- 医学影像:MRI、CT 扫描(典型的 3D 图像)
- 工业CT:用于材料检测、无损评估
- 3D 模型体素化数据
- 三维显微图像:如脑组织切片堆叠
🧱 基本语法
layer = image3dInputLayer(inputSize)
layer = image3dInputLayer(inputSize, Name=Value)
📌 inputSize
的结构
一个 4 元素向量:
[height, width, depth, channels]
例如:
[64 64 32 1]
:单通道 MRI 图像体[128 128 64 3]
:RGB 彩色体积数据(少见)
✨ 主要功能与优势
功能 | 是否支持 | 默认行为 |
---|---|---|
接收 3D 图像/体数据 | ✅ | - |
自动归一化 | ✅ | zerocenter |
支持复数数据输入(R2024a) | ✅ | - |
自定义归一化函数 | ✅ | - |
指定归一化维度 | ✅ | auto |
⚙️ 关键参数详解(Name-Value)
1️⃣ Normalization
图像归一化方式,常用于调整数据到标准范围,提高训练效果。
选项 | 含义 |
---|---|
"zerocenter" (默认) | 每像素减去其均值 |
"zscore" | 减均值除以标准差 |
"rescale-zero-one" | 缩放到 [0, 1] 范围 |
"rescale-symmetric" | 缩放到 [-1, 1] 范围 |
"none" | 不归一化 |
函数句柄(@(x) f(x) ) | 自定义归一化函数,完全按自己定义的方式处理数据 |
2️⃣ NormalizationDimension
控制归一化在哪个维度进行:
值 | 说明 |
---|---|
"auto" | 自动确定(默认) |
"channel" | 每通道归一化 |
"element" | 每个体素独立归一化 |
"all" | 整个数据统一归一化 |
3️⃣ Mean
、StandardDeviation
、Min
、Max
这些值用于归一化计算,可以设为:
- 标量:适用于全图统一值
[1 1 1 C]
向量:每通道不同- 完整体积
[H W D C]
:按每个体素指定(通常不用)
示例:
image3dInputLayer([64 64 32 1], ...
Normalization="zscore", ...
Mean=0.5, ...
StandardDeviation=0.1)
4️⃣ Name
输入层的命名,方便后续用层图识别它。
image3dInputLayer([64 64 64 1], Name="volume_input")
5️⃣ ✅ 复数支持(从 R2024a 起)
支持复数 MRI 图像、雷达信号等:
- 支持复数
Mean
和StandardDeviation
- 归一化方法限制为
"zerocenter"
、"zscore"
、"none"
或自定义函数 - 不再强制拆成实/虚部两个通道(与旧版不同)
🧪 使用示例
layers = [
image3dInputLayer([64 64 64 1], Normalization="zerocenter")
convolution3dLayer(3, 16, Padding="same")
reluLayer
maxPooling3dLayer(2, Stride=2)
fullyConnectedLayer(2)
softmaxLayer
classificationLayer
];
适合处理 64³ 大小的单通道 CT 图像,用于二分类任务。
🧩 与其他输入层比较
输入层类型 | 支持数据类型 | 自定义格式支持 | 是否归一化 | 是否支持复数 | 用例 |
---|---|---|---|---|---|
imageInputLayer | 2D 图像 | ❌ | ✅ | ✅(R2024a) | 图片分类、图像识别 |
image3dInputLayer | 3D 图像/体数据 | ❌ | ✅ | ✅(R2024a) | CT/MRI 体积分析、医学影像 |
inputLayer | 任意数据结构 | ✅ | ❌ | ✅ | 高级用户自定义结构数据 |
📌 小贴士
- 🧹 建议将体积图像格式为
H×W×D×C×N
(样本维度在最后) - 🧠 数据类型最好是
single
或double
- 🧼 若用
augmentedImageDatastore
进行增强,它可自动适配维度 - 🧪 使用
dlnetwork
动态网络时,也可以直接接入此输入层 - 🧊 使用
.nii
、.mha
、.nrrd
数据时注意数据转换维度
✅ 总结一句话
image3dInputLayer
是构建体积图像神经网络的首选,它支持归一化、复数输入、自定义统计量等,特别适合 医学图像分析、3D 分割/分类、工业视觉 等任务,且用法直观,非常适合初学和应用。
如果你有具体的三维图像任务,比如:
- CT 图像分割?
- 多通道 MRI 分类?
- 医学图像增强?
我们来详细聊聊 MATLAB 的 sequenceInputLayer
—— 用于序列数据(时间序列、音频、文本等)的输入层,是构建循环神经网络(如 LSTM、GRU)不可或缺的起点。
🧠 sequenceInputLayer
是什么?
sequenceInputLayer
是 MATLAB 深度学习工具箱中用于输入**序列数据(sequence data)**的网络层,支持:
- 向量序列(如时间序列预测、传感器数据)
- 图像序列(如视频帧、动态医疗图像)
- 多维信号序列(如 3D 图像序列)
它也负责进行归一化处理,保证输入数据在数值上稳定,有助于网络收敛。
🧱 基本语法
layer = sequenceInputLayer(inputSize)
layer = sequenceInputLayer(inputSize, Name=Value)
其中 inputSize
决定输入数据的特征维度:
类型 | inputSize 示例 | 说明 |
---|---|---|
向量序列 | 12 | 每一时刻输入12个特征 |
1D 图像序列 | [28 1] | 高为28,1通道 |
2D 图像序列 | [64 64 3] | RGB图像帧序列 |
3D 图像序列 | [128 128 64 1] | CT帧序列 |
⚙️ 常用参数(Name-Value)
1️⃣ Normalization
指定归一化方式(默认:"none"
)
选项 | 含义 |
---|---|
"none" | 不做归一化 |
"zerocenter" | 减去均值(Mean ) |
"zscore" | 减均值再除以标准差(StandardDeviation ) |
"rescale-zero-one" | 缩放至 [0, 1] |
"rescale-symmetric" | 缩放至 [-1, 1] |
function handle | 自定义归一化函数,如 @(x)(x - mean(x)) |
2️⃣ MinLength
设置输入序列最短长度,防止卷积等操作导致长度为0时报错。
sequenceInputLayer(12, MinLength=10)
3️⃣ NormalizationDimension
指定归一化的维度,适用于多通道或图像序列。
值 | 说明 |
---|---|
"auto" | 自动选择(默认) |
"channel" | 按通道维度归一化 |
"element" | 每个元素分别归一化 |
"all" | 所有值用统一的均值/方差 |
4️⃣ Mean
/ StandardDeviation
/ Min
/ Max
手动指定归一化参数(否则训练时自动计算)
sequenceInputLayer(12, Normalization="zscore", ...
Mean=0.5, StandardDeviation=0.2)
适用于控制实验重复性,或提前已知数据统计特征。
5️⃣ SplitComplexInputs
(从 R2024a 起)
是否支持复数数据:
false
:保留复数形式传入后续网络true
:拆成实部 + 虚部通道
🧪 示例:构建 LSTM 网络
layers = [
sequenceInputLayer(12) % 每个时间步12个特征
lstmLayer(100, OutputMode="last") % 输出序列最后一个时间步的状态
fullyConnectedLayer(5)
softmaxLayer
classificationLayer
];
适用于时间序列分类任务。
📦 示例:图像帧序列输入(视频)
layer = sequenceInputLayer([224 224 3], Name="videoInput")
这代表每个序列时间步是 224x224 RGB 图像帧,可以用于视频动作识别等。
🧩 与其他输入层比较
层类型 | 适用数据 | 支持时序 | 支持归一化 | 复数支持 |
---|---|---|---|---|
sequenceInputLayer | 序列、时间序列 | ✅ | ✅ | ✅(R2024a) |
imageInputLayer | 单张2D图像 | ❌ | ✅ | ✅ |
image3dInputLayer | 单个3D图像(如CT) | ❌ | ✅ | ✅ |
featureInputLayer | 非时序特征数据 | ❌ | ❌ | ❌ |
inputLayer | 自定义维度格式 | ✅ | ❌(需手动) | ✅ |
🔧 输入数据格式(关键)
在使用 dlnetwork
+ trainnet
时,MATLAB 要求:
数据类型 | 格式要求(维度) | dlarray 格式描述 |
---|---|---|
向量序列 | T × C | 'TC' |
1D 图像序列 | H × C × T | 'HCT' |
2D 图像序列 | H × W × C × T | 'HWCT' |
3D 图像序列 | H × W × D × C × T | 'HWDC T' |
其中 T 是时间(序列长度),C 是通道数。
✅ 总结一句话
sequenceInputLayer
是你在 MATLAB 中构建 LSTM、GRU 等处理时间序列、图像帧序列、动态数据的深度学习模型的起点,它灵活、功能丰富,支持多维输入、归一化和复数输入,非常适合序列类学习任务。
MATLAB 中 featureInputLayer
的用法和设计原理,包括它适合的使用场景、参数详解、与其他输入层的对比、常见用法等。
✅ 一、什么是 featureInputLayer
?
featureInputLayer
是 MATLAB 深度学习工具箱中用于结构化数值数据(即无空间、无时间维度的数据)的输入层。
📌 使用场景:
- 输入数据是 tabular(表格型)格式
- 每条样本是一组特征值(如:RMS、频率、温度等)
- 不涉及图像、时序,只关注“特征 → 分类/回归”
📊 典型数据格式:N × F
数组(N:样本数,F:特征数)
🧱 二、基本语法
layer = featureInputLayer(numFeatures)
layer = featureInputLayer(numFeatures, Name=Value)
numFeatures
:每个样本的特征数量Name=Value
:可以指定如归一化方式、层名称等属性
⚙️ 三、常用参数详解
参数名 | 说明 | 示例 |
---|---|---|
Normalization | 数据归一化方式 | "none" 、"zscore" 、"zerocenter" 、"rescale-zero-one" 、函数句柄 |
NormalizationDimension | 归一化维度(默认按通道) | "channel" 、"all" |
Mean | 均值(归一化用) | Mean=[0.1 0.5 0.7] |
StandardDeviation | 标准差(用于 zscore) | StandardDeviation=[0.3 0.2 0.4] |
Min / Max | 最小值和最大值(用于 rescale) | Min=[0 0 0] , Max=[1 1 1] |
SplitComplexInputs | 是否处理复数输入(支持 R2024a) | 0(默认) or 1 |
Name | 层名称 | "inputFeatures" |
🔁 四、与其他输入层对比
输入层类型 | 适用数据类型 | 输入维度 | 示例 |
---|---|---|---|
imageInputLayer | 图像数据(2D) | h × w × c | 彩图、灰度图 |
image3dInputLayer | 体数据(3D图像) | h × w × d × c | 医学影像,CT,MRI |
sequenceInputLayer | 序列数据 | features × time | 时间序列、传感器数据流 |
featureInputLayer | 表格特征数据 | N × features | 结构化数据,CSV 表格等 |
📦 五、完整代码示例(分类任务)
% 假设你有 XTrain (NxF 矩阵),TTrain 是标签
numFeatures = size(XTrain,2);
numClasses = numel(unique(TTrain));
layers = [
featureInputLayer(numFeatures, Normalization="zscore")
fullyConnectedLayer(32)
reluLayer
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer
];
options = trainingOptions("adam", MaxEpochs=50, Plots="training-progress");
net = trainnet(XTrain, TTrain, layers, "crossentropy", options);
🔗 六、进阶用法:与图像或序列联合输入
你可以将 featureInputLayer
与 imageInputLayer
或 sequenceInputLayer
一起使用,通过 concatenationLayer
连接不同来源的数据。
% 图像支路
imageBranch = [
imageInputLayer([28 28 1])
convolution2dLayer(3,8)
reluLayer
flattenLayer
];
% 数值支路
featureBranch = featureInputLayer(5, Name="features");
% 合并支路
concatLayer = concatenationLayer(1, 2, Name="concat");
% 输出支路
outputBranch = [
fullyConnectedLayer(10)
softmaxLayer
];
% 合成网络结构
lgraph = layerGraph();
lgraph = addLayers(lgraph, imageBranch);
lgraph = addLayers(lgraph, featureBranch);
lgraph = addLayers(lgraph, concatLayer);
lgraph = addLayers(lgraph, outputBranch);
lgraph = connectLayers(lgraph, "flatten", "concat/in1");
lgraph = connectLayers(lgraph, "features", "concat/in2");
lgraph = connectLayers(lgraph, "concat", "fullyconnected");
net = dlnetwork(lgraph);
🧪 七、复数支持(R2024a 新增)
- 支持复数特征输入
- 默认通过
SplitComplexInputs = 0
原样传入 - 你可以设置
Mean
和StandardDeviation
为复数向量 - 也可以用
SplitComplexInputs=1
拆分成实部和虚部两倍特征维度
✅ 总结
优点 | 描述 |
---|---|
🚀 快速建模 | 适用于数值特征 → 分类/回归任务 |
📦 易集成 | 可以与图像、时序数据灵活融合 |
🔁 多种归一化 | 支持常见归一化方式和自定义函数 |
🧠 支持复数 | 可处理复数数据(R2024a 起) |
下面是对 MATLAB 中 pointCloudInputLayer
的详细介绍,包括它的作用、输入格式、属性详解、典型用法,以及它与其他输入层的比较分析。
🔍 一、什么是 pointCloudInputLayer
?
pointCloudInputLayer
是 MATLAB 自 R2022b 引入的专门用于点云数据的深度学习输入层。
✅ 主要功能:
- 接收 3D 点云数据作为输入
- 提供灵活的 归一化(Normalization) 支持
- 可用于点云分类、分割、回归等任务
- 可与
pointnetplusNetwork
、squeezesegv2Network
等架构配合使用
📐 二、输入格式说明
pointCloudInputLayer
接收的数据必须是 numeric 数组,输入尺寸通过 InputSize
参数定义,有两种格式:
点云类型 | 输入尺寸 InputSize | 说明 |
---|---|---|
非组织点云 | [M C] | M 是点数,C 是通道数(如 [x y z] 或 [x y z intensity] ) |
组织点云 | [M N C] | 类似图像:M ×N 是空间网格,C 是每点通道 |
⚙️ 三、关键属性详解
属性 | 默认值 | 功能说明 |
---|---|---|
InputSize | 必须指定 | 输入数据维度 [M C] 或 [M N C] |
Normalization | 'none' | 数据归一化方式:'zerocenter' 、'zscore' 、'rescale-symmetric' 、'rescale-zero-one' 、函数句柄 |
NormalizationDimension | 'auto' | 'channel' 、'element' 、'all' |
Mean | [] | 归一化时使用的均值,'zerocenter' 或 'zscore' 时有效 |
StandardDeviation | [] | 标准差,用于 'zscore' |
Min , Max | [] | 最小最大值,用于 rescale 模式 |
Name | '' | 层的名称 |
NumOutputs | 1 | 固定为 1,输出为 'out' |
👉 如果 Mean/Std/Min/Max
为空,系统会在训练时自动计算。
🧪 四、典型用法
🚗 用于 LiDAR 点云分类(非组织点云):
layer = pointCloudInputLayer([2048 4], Name="input", Normalization="zscore");
对应输入:2048 个点,4 个通道(如 x, y, z, intensity)
🛰️ 用于 BEV 点云图像(组织点云):
layer = pointCloudInputLayer([64 512 5], Normalization="rescale-zero-one");
表示:64×512 网格(空间维度),每个点有 5 通道
🔗 五、与其他输入层对比
输入层类型 | 适用数据 | 特点 |
---|---|---|
imageInputLayer | 图像 [H W C] | 用于 RGB 或灰度图像 |
image3dInputLayer | 医学图像 [H W D C] | 用于体数据,如 MRI |
sequenceInputLayer | 时序/序列 | 用于 LSTM/GRU 网络 |
featureInputLayer | 数值向量 | 用于表格类数据(无空间维度) |
✅ pointCloudInputLayer | 点云 [M C] / [M N C] | 专门用于 LiDAR、3D 点云任务 |
🛠️ 六、进阶用法:与网络搭配
搭配 pointnetplusNetwork
示例:
layers = [
pointCloudInputLayer([1024 3], Name="input")
pointnetplusNetwork("pointSegmentation", numClasses)
softmaxLayer
];
也可手动搭建网络,与 convolution3dLayer
、reluLayer
等连接。
🧠 七、特别说明
✅ 支持归一化函数句柄
可使用自定义函数,例如:
layer = pointCloudInputLayer([1000 3], Normalization=@(x)(x - mean(x,"all"))/std(x,0,"all"));
✅ 训练数据格式
数据应为 dlarray
或 numeric 数组,格式为:
- 非组织点云:
[M C N]
,其中N
为 batch 数 - 组织点云:
[M N C B]
❗ 注意:
- 不支持
pointCloud
类型作为输入,需手动转换为数组。 - 训练时自动计算归一化统计量,除非手动设定。
🚀 八、总结
优势 | 描述 |
---|---|
✅ 专为点云设计 | 无需 reshape 或自定义层 |
✅ 灵活输入维度 | 支持组织 & 非组织点云 |
✅ 多种归一化方式 | 自动或自定义 |
✅ 易与 MATLAB 生态整合 | 与 trainNetwork 、dlnetwork 无缝结合 |