主要内容

MATLAB深度学习容器NVIDIAGPU的云NVIDIADGX.

通过在MATLAB训练神经网络,加快你的深度学习应用程序®深度学习容器,设计充分利用高性能NVIDIA®gpu。您可以使用web浏览器或VNC连接远程访问MATLAB深度学习容器。

MATLAB深度学习容器包含MATLAB和一系列MATLAB工具箱,对深度学习是理想的(参见额外的信息).

本指南帮助您在NVIDIA DGX平台的云中运行MATLAB桌面。MATLAB深度学习容器,一个托管在NVIDIA GPU云上的Docker容器,简化了这个过程。这个集装箱在NVIDIAGPU云容器注册

需求

把容器

拉出容器将容器映像下载到Docker主机上,也就是运行容器的机器。你只需要拉一次容器。

控件中可以复制容器映像发布的pull命令NVIDIA集装箱注册表.在Tags部分中,找到您想要运行的容器映像版本。在“拉”列中,单击图标以复制码头工人拉命令。该命令的形式如下:

搬运工人拉nvcr.io/partners/matlab:r20XYz
的标签r20XYz必须用特定的MATLAB版本名称替换,例如r2020a.保证的最后一部分命令匹配您想要使用的MATLAB版本。

使用PuTTY或其他SSH客户端从客户端机器通过SSH连接到Docker主机。粘贴码头工人拉命令到SSH客户端,并运行多克尔主机上的命令。你并不需要登录到NVIDIA容器注册拉容器图像。

运行码头工人拉命令下载MATLAB容器图像到主机。这可能需要一些时间来下载并解压大型集装箱图像。

运行的容器

使用下面的命令运行MATLAB深度学习容器:

nvidia-docker运行-it——rm -p 5901:5901 -p 6080:6080——shm-size=512M nvcr.io/partners/matlab:r20XYz

保证的最后一部分运行命令匹配您想要使用的MATLAB版本。

选项- p hostport: containerport将容器内部的端口映射到Docker主机上的端口,以便连接到容器桌面。集装箱使用的端口为5901(用于VNC连接)和6080(用于网络浏览器连接)。如果在同一台主机上部署多个容器,则必须增加主机端口,直到找到空闲端口为止。例如:

-p 5902:5901 -p 6081:6080

MATLAB深度学习容器现在正在您的DGX机器上运行。

运行MATLAB从容器中

在容器中有三种访问MATLAB的方法:

  • 使用web浏览器连接到容器桌面,运行MATLAB桌面

  • 使用VNC连接到容器桌面,运行MATLAB桌面

  • 使用命令行界面运行MATLAB

如果你的主机受防火墙保护,或者无法通过网络浏览器或VNC访问容器的桌面,你可以设置SSH隧道容器(见安全地连接).

使用Web浏览器进行连接

使用端口连接浏览器6080在容器中。要连接,使用的网址:

http://hostname:6080

主机名是运行容器的Docker主机的名称,例如MyCompanyDGX1.如果增加了主机端口运行的容器,例如,使用适当的主机端口号6081

您将看到noVNC的登录屏幕。单击连接。当系统提示您输入密码时,请使用密码:

matlab

你可以使用桌面图标运行MATLAB。使用MathWorks登录®帐户。

如果不能使用MathWorks帐户登录,请检查帐户是否连接到配置为云使用的许可证。检查,请访问授权中心

使用VNC连接

VNC连接使用端口5901在容器中。VNC连接到映射到容器口为主机端口的主机显示5901;例如,显示1主机端口5901

要连接,请使用VNC客户端连接到:

主机名:1

主机名是运行容器的Docker主机的名称,例如MyCompanyDGX1.如果增加了主机端口运行的容器,使用适当的主机显示端口号,例如2主机端口5902

登录并连接到容器桌面,使用密码:

matlab

你可以使用桌面图标运行MATLAB。登录使用MathWorks公司帐户。

如果不能使用MathWorks帐户登录,请检查帐户是否连接到配置为云使用的许可证。检查,请访问授权中心

运行MATLAB使用命令行界面

您可以从终端使用命令行界面中使用命令运行MATLAB:

matlab

注意,在本例中没有图形桌面。

如果不能使用MathWorks帐户登录,请检查帐户是否连接到配置为云使用的许可证。检查,请访问授权中心

安全地连接

您可以使用SSH隧道来建立一个加密通道的客户机和容器之间的会话。这样做提供了客户端和容器之间的安全连接。如果主机或客户机是由防火墙保护,则必须使用SSH tunelling。

这些指令通过Docker主机将客户端端口转发到容器端口。建立SSH隧道后,客户端端口和容器端口之间的所有通信都是安全的。

使用PuTTY在窗户客户端

如果使用PuTTY连接到Docker主机,请使用菜单选项“更改设置”添加新的转发端口,可通过单击标题栏访问。在PuTTY重新配置对话框的类别下,选择连接>SSH>隧道。

要通过VNC连接,请设置一条到集装箱端口的隧道5901

  • 在Source端口字段中,在客户机上输入一个空闲端口5900, 例如5901

  • 在“Destination”字段中输入与容器端口连接的相关主机端口5901运行的容器例如,localhost: 5901.请注意,您必须使用本地主机而不是主机实例的名称。

要通过Web浏览器连接,建立一个隧道的集装箱港口6080

  • 在源端口字段中,输入客户机上的空闲端口,例如6080

  • 在“Destination”字段中输入与容器端口连接的相关主机端口6080运行的容器例如,本地主机:6080.请注意,您必须使用本地主机而不是主机实例的名称。

如果在客户端机器上使用多个容器或运行VNC服务器,则必须增加客户端机器上的源端口,直到找到空闲端口为止,例如,59026081

使用命令行界面

如果您正在使用命令行界面来SSH隧道到容器端口,请使用以下形式的命令:

ssh -L clientport:hostport ubuntu@MyCompanyDGX1

clientport例如,客户端机器上是否有空闲端口59016080HOSTPORT连接到集装箱端口的主机端口是否在运行的容器, 例如localhost: 5901本地主机:6080.请注意,您必须使用本地主机而不是主机实例的名称。

例如,使用下面的命令:

ssh -L 5901:localhost:5901 ubuntu@MyCompanyDGX1

例如,如果您在客户机上运行VNC服务器,则必须增加客户机端口,直到找到空闲端口为止59026081

连接到容器桌面

现在可以使用转发的客户端端口连接到容器桌面。

要使用web浏览器连接,请使用URL:

http://localhost:6080

请注意,您必须使用本地主机而不是主机实例的名称。

例如,如果在创建隧道时增加了客户端端口,请使用适当的客户端端口号6081

要连接VNC,请使用VNC客户端连接到客户端相应的显示端口,例如:

localhost: 1

请注意,您必须使用本地主机而不是主机实例的名称。

如果在进行隧道时,增加了客户端端口,使用适当的客户端显示的端口号,例如,2为端口5902

要运行MATLAB桌面,请遵循从容器运行MATLAB

在容器中选择用于培训的gpu

MATLAB支万博1manbetx持使用多个gpu并行训练单个网络。要在MATLAB深度学习容器中启用多gpu训练,请使用trainingOptions函数设置'executionenvironment'“multi-gpu”

训练你的网络使用trainNetwork功能。MATLAB打开的工人上所有可用的GPU并行池。要选择培训只有特定的GPU,可以使用gpuDevice.有关更多信息,请参见选择特定的GPU用于培训(深度学习工具箱)

要测试你的容器,可以运行为分类创建简单的深度学习网络(深度学习工具箱)的例子。要尝试此示例,请双击该文件MNISTExample.mlx在MATLAB启动文件夹的当前文件夹窗格中。要在所有可用的gpu上运行此示例,请在trainingOptions函数,设置'executionenvironment'“multi-gpu”

导入和导出数据

您可以在Docker主机上访问用于深度学习的数据,并保存训练有素的网络。使用。挂载工具将主机系统中的文件夹挂载到容器- v泊坞窗的选择。

例如,假设您在客户机上有一个名为MyDeepLearningData.此文件夹包含一个名为的子文件夹MyTrainingData,其中包含用于训练网络的一组图像。该文件夹还包含子文件夹MyTrainedNetworks,您希望保存您的训练有素的网络数据。

下面的选项挂载源文件夹MyDeepLearningData及其子文件夹到在容器中的目标文件夹,ContainerDeepLearningData

-v / MyCompanyDGX1 / MyDeepLearningData:/ ContainerDeepLearningData

将选项添加到码头工人运行在命令运行的容器

现在可以在文件夹中的容器中访问和保存数据ContainerDeepLearningData.该文件夹下的主机中存在已保存的数据MyDeepLearningData.这些文件坚持一旦容器停止。请注意,从容器中修改文件覆盖主机上的文件。

您可以使用附加文件将任意多的文件夹挂载到容器中- v选项。

运行选项

配置桌面接入密码

要更改密码以通过VNC或web浏览器访问容器中的桌面,您可以使用以下选项:

- e密码= MyNewPassword

将此选项添加到码头工人运行命令。

配置代理设置

如果您的DGX系统通过代理服务器连接到互联网,您可以在运行容器时指定您的代理设置。如果使用带在线许可的MATLAB,则需要指定代理设置以连接到MathWorks在线许可服务器。

使用表单的一个选项:

- e NGC_PROXY = < proxy-server-address >

将此选项添加到码头工人运行命令。

您可以指定使用任何下列形式的代理服务器地址:

  • 主机名:12345

  • shorthostname:12345

  • http://hostname:12345

  • http://username:password@hostname:12345

  • IPaddress: 12345

在哪里主机名是完全合格的域名,shorthostname是相对域名,和12345是端口号。

网络许可管理

如果您的许可是通过网络许可证管理器给药,可以使用该许可证与MATLAB深度学习容器。您可以指向该许可证的位置码头工人运行命令。添加的选项:

- e MLM_LICENSE_FILE = 27000 @mylicenseserver

将此选项添加到码头工人运行命令。

有关更多信息,请参见基于NVIDIA GPU云的MATLAB深度学习容器

进一步的配置选项

对于高级用户,可以通过其他Docker选项进一步配置容器部署。有关更多信息,请参见码头工人的文档

关闭集装箱会议

要关闭容器会话,输入退出从集装箱码头。停止并移除Docker容器。当容器关闭时,默认不会保存进程或数据,除非您通过挂载主机存储将数据保存在主机上,具体步骤请参见导入和导出数据

在容器中安装更新、工具箱和附加组件

您可以安装最新的更新MATLAB或安装额外的工具箱和插件。然后,你可以保存容器后使用,以避免重新安装变化。

要安装或更新MATLAB,你必须以超级用户权限运行MATLAB。在容器会话内的端子,具有使用以下命令根特权启动MATLAB。

须藤MATLAB

您可以从MATLAB中安装更新和工具箱。有关如何安装更新的信息,请参见更新现有安装(MATLAB).有关如何安装工具箱和附加信息,请参阅获取和管理附加组件(MATLAB)

在容器中保存更改

如果您在容器中进行更改,例如安装更新、附加工具箱或附加组件,则可以保存容器以供以后使用。然后,您可以部署容器的更新版本,而不需要再次安装更新或工具箱。

你已经在容器中的改变之后,当容器仍在运行执行这些步骤。

在您的客户端机器上,使用PuTTY或与访问Docker主机并启动容器相同的方法,打开与Docker主机(运行容器的机器)的另一个连接。

获得使用下面的命令运行容器的容器ID。

码头工人ps
该命令将显示当前运行的所有容器的详细信息。确定您的MATLAB深度学习容器,并注意容器ID。

要保存容器,请使用码头工人承诺命令。

docker提交 :
码头工人承诺命令本地保存基于所指定的容器ID的新容器图像;在这种情况下,基于当前正在运行的容器上。您可以查看可用的本地使用的图像码头工人的图片命令。

例如,假设你在MATLAB深度学习容器中使用MATLAB R2020a。您已经更新了当前运行的容器中的MATLAB,并希望保存它以供以后使用。

首先,找到正在运行的容器的容器ID。

码头工人ps
容器ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3d555451f07a nvcr. txt/bin/run.sh /bin/run.sh /bin/run.sh

接下来,提交容器映像。

搬运工承诺3d555451f07a mymatlab:r2020a
属性中指定已更新容器的标记,现在可以启动已更新的容器映像码头工人运行命令。

nvidia-docker运行它——rm -p 5901:5901 -p 6080:6080——shm-size=512M mymatlab:r2020a

额外的信息

是什么NVIDIAGPU云?

NVIDIA GPU Cloud是一个Docker容器库,设计用于在高性能NVIDIA GPU上运行应用程序。

什么是容器?

当您希望在多个不同的位置以可靠的方式运行应用程序或软件时,您可以使用容器。容器是一种轻量级包,包含运行特定应用程序(或一组应用程序)所需的一切,包括代码、库、驱动程序和设置。因为容器中的应用程序总是以相同的方式运行,所以它们对于管理定义良好的测试和部署环境非常有用。

不同于虚拟机,容器共享主机和相同的容器中共享公共资源的多个实例的操作系统。这使得他们轻量化。然而,容器彼此和主机操作系统隔离。也就是说,容器内的应用程序只能访问文件和流程,容器内提供。

您可以在相同或不同的主机上部署相同容器的多个实例,以同时测试应用程序。要扩展功能,可以将额外的文件、文件夹和设备挂载到容器中。

里面有什么MATLAB深度学习集装箱吗?

MATLAB深度学习容器包含MATLAB和其他几个工具箱,在深度学习应用程序中是有用的。

  • 计算机视觉工具箱™

  • GPU编码器™

  • 图像处理工具箱™

  • MATLAB编码器™

  • 深度学习工具箱™

  • 并行计算工具箱™

  • 信号处理工具箱™

  • 统计和机器学习工具箱™

  • 文本分析工具箱™

要使用MATLAB深度学习容器中的gpu执行深度学习,您必须拥有MATLAB、深度学习工具箱和并行计算工具箱的有效许可证。要访问容器的全部功能,需要对容器中的其他产品有效的许可证。s manbetx 845

  • 如果您没有深度学习工具箱或并行计算工具箱的有效许可证,MATLAB会在启动时显示一个警告,指示您不能使用这些产品。s manbetx 845

  • 如果您没有MATLAB深度学习容器中其他产品的有效许可证,MATLAB在启动时显示一条消息s manbetx 845,指示您不能使用这些产品。

您可以在获得在MATLAB深度学习容器产品试用许可证s manbetx 845云上深度学习的MATLAB试验

此外,该容器包含若干预先训练的深度神经网络(深度学习工具箱)

您可以从TensorFlow™-Keras和Caffe将网络和网络架构导入到容器中,无论是否使用层权重。您还可以将训练有素的网络转换为开放神经网络交换(ONNX)模型格式。

MATLAB深度学习容器还包括:

通过在容器中部署该软件,您可以避免安装和配置这些产品所需的设置时间。s manbetx 845您可以运行多个容器,一次或在不同的地点培训多个网络,并取得可重复的结果。

技术支持万博1manbetx

有关技术支持,评论,以及有关万博1manbetxMATLAB深度学习容器,联系人查询cloud-万博1manbetxsupport@mathworks.com

相关的话题