将TensorFlow模型引入MATLAB
在释放R2021a,一个转换器TensorFlow模型作为一个支持包发布支持TensorF金宝applow 2模型导入深度学习工具箱。在这个博客中,我们将探索方法可以使用转换器TensorFlow模型和执行以下操作:
将模型训练TensorFlow 2为MATLAB,您可以使用函数importTensorFlowNetwork,这使您能够将模型及其权重导入MATLAB。(注意:您还可以使用importTensorFlowLayers从TensorFlow进口层)。
> > > > > > > > > > > > > > > > > > > > > > > > > > > > >看到一个更细节的文章如何将TensorFlow模型中引入MATLAB,请查看相关的文章在引进TensorFlow(和其他)网络> > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 相关文章:从TensorFlow进口模型,PyTorch ONNX |
图1:TensorFlow模型导入MATLAB后常见的工作流
1。可视化和分析网络了解网络,我们将使用深层网络设计师应用可视化网络架构。加载应用程序,类型deepNetworkDesigner命令行和负载网络从工作区。一旦导入到应用程序,网络如图4所示。层架构包含skip-connections ResNet就是很典型的一种架构。在这个阶段可以使用这个网络转移学习工作流。看看这个视频,学习如何交互式修改转移学习深入学习网络。你也可以点击分析应用按钮(图4 b)和调查活动的大小,看看网络错误不正确的张量的形状,错误的连接等。
图4:ResNet50架构内部深层网络设计师应用
图4 b:分析导入的错误和可视化网络体系结构中的关键部件——对于resnet50跳过连接。点击大图。
2。生成C / c++ / CUDA代码最常见的一种路径客户导入模型生成代码后,针对不同的硬件平台。
在这个例子中,我们将生成CUDA代码,使用GPU编码器简单的3步,针对cuDNN库。
第一步:验证GPU的环境
这个执行一个完整的检查所有的第三方工具所需的GPU代码生成。这是代表所示的输出。您的结果可能有所不同。
envCfg = coder.gpuEnvConfig('主机');envCfg。DeepLibTarget =“cudnn”;envCfg。DeepCodegen = 1;envCfg。安静= 1;coder.checkGpuInstall (envCfg); |
图5:验证GPU的环境,以确保所有必要的库是可用的
第二步:定义入口点函数
的resnet50_predict.m入口点函数接受一个图像输入和运行使用进口ResNet50模型预测图像。函数使用一个持久对象mynet加载系列网络对象和重用的持久对象预测在随后的电话。
函数= resnet50_predict ()% # codegen持久mynet;如果isempty (mynet) mynet = coder.loadDeepLearningNetwork (“resnet50.mat”、“净”);结束%通过输入= mynet.predict(的);
步骤3:墨西哥人运行代码生成
调用的入口点函数,针对cudnn生成c++代码库
生成CUDA代码resnet50_predict.m入口点函数,创建一个GPU代码配置对象为一个墨西哥人的目标和目标语言设置为c++。使用coder.DeepLearningConfig函数创建一个CuDNN深度学习配置对象,并将其分配给DeepLearningConfig GPU代码配置对象的属性。运行codegen命令并指定一个输入(224224 3)的大小。这个值对应的输入层大小ResNet50网络。
运行的墨西哥人cfg = coder.gpuConfig(墨西哥人);cfg。TargetLang =“c++”;cfg。DeepLearningConfig = coder.DeepLearningConfig (“cudnn”);codegen配置cfg resnet50_predict args(224224 3)}{的报告
GPU程序员创建一个代码生成报告,提供了一个接口检查原始的MATLAB代码和生成的CUDA代码。报告还提供了一个方便的交互代码跟踪工具MATLAB代码和CUDA之间的映射。图6显示了一个屏幕截图工具的行动。
图6:生成的代码生成的报告。单击查看细节。
在这个例子中,我们针对cuDNN库。你也可以目标英特尔和ARM的cpu使用MATLAB编码器使用fpga和soc深度学习HDL工具箱。
3所示。集成网络模型金宝app通常,深度学习模型是作为更大的系统的一个组件。金宝app仿真软件建模有助于探索广阔的设计空间的被测系统和物理工厂,你可以使用一个多域环境模拟系统的所有部分的行为。在本节中,我们将看到如何从TensorFlow进口resnet50模型可以集成到模型。金宝app
我们将该模型与仿真软件集成在3个简单的步骤。金宝app但首先,保存Resnet50模型在MATLAB的目录。使用保存(“resnet50.mat”、“净”)这样做。
第一步:打开模型和访问库浏金宝app览器
打开模型(金宝app类型金宝app在命令窗口),选择“空白模型”
单击库浏览器
步骤2:添加仿真软件模块金宝app
添加一个图像从文件块计算机视觉的工具箱图书馆和peppers.png文件名参数设置。这是样品图片我们将使用resnet50模型在仿真软件进行分类。金宝app
预处理图像:我们需要添加一些预处理线,以确保网络得到了预期的形象。在仿真软件编写MATLAB代码,我们将使用MAT金宝appLAB功能块。点击任何地方在仿真软件上画布和类型从选项列表金宝app中,选择MATLAB函数。在MATLAB功能块内部,我们将添加几行翻转图像通道和调整图像的。
函数y = preprocess_img (img) img =翻转(img, 3);img = imresize (img, 224年[224]);y = img;结束
添加ResNet50模型:导航到深度学习工具箱- - >深层神经网络模型库浏览器和“预测”块拖放到画布上的仿真软件模型。金宝app
双击打开的预测块块的参数对话并选择“网络从MAT-file”的选项网络下拉菜单如图所示。导航到你的位置保存resnet50模型和打开它。点击好吧一旦你完成了。
图7:内置的深度学习模块可用于预测和分类
添加一个输出预测分数:接下来,点击任何地方在你的模型帆布和类型金宝app输出并选择第一个选项
图8
连接块到目前为止您已经创建了。一旦完成,它应该类似于下面的图。
图9
第三步:运行仿真
一旦模拟运行成功,你绝对应该测试如果仿真输出正确预测甜椒形象。以下是所做的预测输出的模拟图像。
图10
这是一个简单的示例演示如何你一个简单的模型与仿真软件集成,但更大的系统复杂得多。金宝app让我们使用一个算法使用一个自主车后巷。有很多组件,使这个应用程序成功:对象检测、传感器融合,加速控制、制动,相当多的更多(参见图11)。深入学习算法代表一个(但非常重要)更大的系统的组件。用于检测车道和汽车,和深度学习系统需要更大的系统中工作。下面是一个图形表示的系统执行高速公路车道。在图11中,只有“视觉探测器”是深入学习网络和其他组件在系统中执行其他任务,比如控制和传感器融合后巷。
我们没有讨论太多关于高速公路车道下面的例子,但如果你有兴趣,这是链接到文档的例子。
图11:系统显示一个典型的植物看起来就像为构建一个更大的系统,许多组件相互作用
结论在这个博客中我们学会了如何合作AI生态系统处理TensorFlow和MATLAB使用转换器TensorFlow模型。我们看到的方式可以提高TensorFlow工作流通过将一个模型训练TensorFlow通过转换器和MATLAB分析,可视化模拟,生成代码的网络。
接下来是什么
在接下来的博客,我们将着眼于进口国autogenerate自定义层的能力为运营商和不支持层,转换成一个内置的层由MATLAB的深度学习工具。金宝app
我们想看到你使用TensorFlow模型转换器和听到你的理由是什么从TensorFlow MATLAB引入模型。
- 类别:
- 深度学习
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。