在matlab2019a中,有一个trainNetwork的函数,可以直接对一个自己构建的深度学习网络模型及数据集进行训练拟合,下面讲一下具体的网络构建语法、数据集输入以及网络超参数的设定等问题。
在官方的介绍文档里面,trainNetwork函数可以用来训练卷积神经网络,LSTM网络,BiLSTM网络,并用以分类或者回归类问题,您可以选择CPU或者GPU的方式进行训练,并行的训练方式要求勾选了matlab中的Parallel Computing Toolbox™。若使用GPU的话,需要配置可用的CUDA以及具备可用的NVIDIA GPU的硬件,且指定训练的一些超参数,需要用到 trainingOptions
的方式设定。
1. trainNetwork函数的语法
trainedNet = trainNetwork(imds,layers,options)
trainedNet = trainNetwork(ds,layers,options)
trainedNet = trainNetwork(X,Y,layers,options)
trainedNet = trainNetwork(sequences,Y,layers,options)
trainedNet = trainNetwork(tbl,layers,options)
trainedNet = trainNetwork(tbl,responseName,layers,options)
[trainedNet,traininfo] = trainNetwork(___)
接下来对上述trainNetwork函数的相关描述。
1) trainedNet = trainNetwork(imds,layers,options)
用途:训练一个用以图像分类问题的网络;
参数说明:imds是输入的图像数据;layers为定义的网络架构;options为定义的超参数。
2)trainedNet = trainNetwork(ds,layers,options)
用途: 使用数据存储区ds的网络,它返回两列table或两列cell中的读取数据。且这两列分别存储了网络输入以及网络期望的输出。
其余参数同上。
3)trainedNet = trainNetwork(X,Y,layers,options)
用途:可用于回归或分类问题,训练网络中最常用的使用方式。
参数说明:X包含预测变量,Y包含分类标签或数字响应。
4)trainedNet = trainNetwork(sequences,Y,layers,options)
用途: 训练LSTM或BiLSTM网络以进行分类和回归问题。
参数说明: sequence是包含序列或时间序列预测变量的单元格数组,Y包含响应。 对于分类问题,Y是分类向量或分类序列的单元阵列。 对于回归问题,Y是目标矩阵或数字序列的单元数组。
5)trainedNet = trainNetwork(tbl,layers,options)
用途:训练网络进行分类和回归问题。
参数说明:tbl包含数据的数字数据或文件路径。 预测变量必须位于tbl的第一列。 有关目标或响应变量的信息,请参阅tbl。
6)trainedNet = trainNetwork(tbl,responseName,layers,options)
用途:训练网络进行分类和回归问题。 预测变量必须位于tbl的第一列。
参数说明:responseName参数指定tbl中的响应变量。
7)[trainedNet,traininfo] = trainNetwork(___)
使用先前语法中的任何输入参数返回有关训练的信息。