人工智能

应用机器学习和深入学习

MATLAB与TensorFlow Jupyter笔记本

内核为Jupyter MATLAB®(GitHub: jupyter-matlab-proxy几个月前发布。MATLAB内核Jupyter了金宝app支持Windows®除了macOS®和Linux®。在这个博客中,Yann r我将向您展示如何创建一个深度学习模型,将它从MATLAB TensorFlow™通过运行MATLAB代码和火车TensorFlow转换模型通过运行Python代码;所有的同样Jupyter笔记本
MATLAB Jupyter TensorFlow
最重要的是,在这篇文章里我们将展示是多么容易在MATLAB和Python代码之间切换Jupyter笔记本。因为我们没有编码环境——我们只是开关切换内核——这是最快的模型交换的原型,我们已经创建了到目前为止。
出于演示目的,我们这篇文章中的示例轻量级的和容易理解。但是你可以扩展这个例子更复杂的工作流程,如:

设置

以前的博客文章在MATLAB内核Jupyter展示了如何使用Windows和Linux的内核。在这篇文章中,我们使用执行工作流的MacBook。最初发生在macOS终端设置。首先,安装MATLAB Jupyter内核。
pip安装jupyter-matlab-proxy
MATLAB系统上的可执行的并不一定路径(至少不是我的Mac),所以我们运行以下命令。
sudo ln - s /应用程序/ MATLAB_R2023a。应用matlab /usr/local/bin / bin /
检查所有的工具安装。后你确认正确的版本的Python安装和所有必要的库(和MATLAB可执行路径),打开Jupyter笔记本。还有其他方法可以启动Jupyter笔记本,例如通过使用CPython的。
检查Python和MATLAB安装,然后打开Jupyter笔记本。
现在,我们已经准备好运行MATLAB和Python代码从同一Jupyter笔记本。

用MATLAB内核创建模型

首先,我们将创建一个LSTM模型在MATLAB。在你Jupyter笔记本,指定您的内核是MATLAB。这是一个一键式的过程。
改变MATLAB内核。
您可以运行下面的MATLAB代码相同的方式从其他MATLAB环境,例如从MATLAB桌面和MATLAB在线。
创建图层图表
创建一个长期短期记忆(LSTM)网络对序列数据进行分类。LSTM网络以序列数据作为输入,使预测基于单个时间序列数据的步骤。
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [sequenceInputLayer (inputSize) bilstmLayer (numHiddenUnits OutputMode =“最后”)fullyConnectedLayer (numClasses) softmaxLayer];lgraph = layerGraph(层);
创建数据集
加载日本元音训练数据集。XTrain单元阵列包含270维序列12和可变长度。YTrain分类向量的标签“1”,“2”,…”9”,对应于九个扬声器。了解更多关于数据集,明白了使用深度学习序列分类
[XTrain, YTrain] = japaneseVowelsTrainData;
准备在XTrain序列数据填充。
numObservations =元素个数(XTrain);i = 1: numObservations = XTrain序列{};sequenceLengths (i) =(序列,2)大小;结束[sequenceLengths idx] =排序(sequenceLengths);XTrain = XTrain (idx);YTrain = YTrain (idx);
垫XTrain沿着第二维度。
XTrain = padsequences (XTrain 2);
排列的序列数据深度学习工具箱™排序(CSN) TensorFlow排序(NSC),其中C是序列的数量特征,S是序列长度,N是观测序列的数量。为更多信息维度排序为不同深度学习平台和数据类型,明白了输入维度排序
XTrain =排列(XTrain (3,2,1));YTrain双(YTrain) = 1;
将训练数据保存到垫子上文件,因此您可以使用它们来培养出口TensorFlow网络使用Python代码。
文件名= " training_data.mat”;保存(文件名,“XTrain”、“YTrain”)
我希望变量没有失去当我切换MATLAB和Python代码Jupyter笔记本。但它同样会如果我要离开任何一个Python MATLAB环境环境。
从MATLAB TensorFlow转换模型
出口TensorFlow层图。的exportNetworkToTensorFlow函数可以节省myModel TensorFlow模型在Python包。
exportNetworkToTensorFlow (lgraph“。/ myModel”)

火车模型与Python内核

然后,我们要培养出口TensorFlow模型使用Python。指定您的内核,Python 3所示。
改变到Python内核。
从Python包myModel装载导出的模型。
model.summary进口myModel模型= myModel.load_model () ()
加载在training_data.mat训练数据。
进口scipy。io sio数据= sio.loadmat (training_data.mat) XTrain =数据(“XTrain”) YTrain =数据(“YTrain”)
编译和训练模式。
model.compile(优化器=“亚当”,损失=“sparse_categorical_crossentropy”指标=[“准确性”])r =模型。fit (XTrain、YTrain时代= 100,batch_size = 27)
保存培训历史上垫的文件。我只需要这样做,因为我要在MATLAB下一节中使用的数据。
sio.savemat (“training_history.mat”{“training_history”: r.history})

情节指标与MATLAB的内核

现在,我们再次使用MATLAB内核情节训练指标。我们将创建一个非常简单的情节,你可以创建与MATLAB或Python。对于更复杂的深度学习和可视化工作流(例如,语义分割),我发现MATLAB提供更多的选择和更容易实现可视化。另外,我不需要安装任何额外的Python库策划。
然而,特别是在这种情况下,关键是当它很容易在MATLAB和Python之间切换,为什么不为你选择最自然的选择。
负荷训练的历史。
负载(“training_history.mat”)历史=结构(training_history)
情节和准确性。
tiledlayout (2, 1, TileSpacing =“紧”)nexttile情节(history.accuracy)包含(“时代”)ylabel(“准确性”)nexttile情节(history.loss)包含(“时代”)ylabel(“损失”)

结论

合作、集成和简单开发AI-driven应用程序访问是关键。在AI的博客上,我们之前讨论过如何以及为什么使用MATLAB TensorFlow或PyTorch。Jupyter集成使它更容易使用不同深度学习工具,尤其是对原型和初步发展。仍有手工元素之间切换内核(意味着你不能运行所有的笔记本电池),所以我们可以考虑其他选项MATLAB和Python代码运行在一起即插即用版本的代码。

阅读更多关于MATLAB和Python集成

看看以前的博客文章关于如何使用MATLAB TensorFlow和PyTorch Jupyter和MATLAB的释放内核:
|
  • 打印

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。