
PyTorch AMD简介
PyTorch是用于张量计算的框架,由GPU加速。它的前端是由python组成的。另一方面,AMD(Advanced Micro Devices)是一个开源的平台,PyTorch的功能和能力可以通过使用python的库来扩展。AMD即自动差异化,是PyTorch支持的这样一个平台,AMD是通过使用基于磁带的系统来使用。这包括在神经网络的神经层和功能层做一些改变。
在这篇文章中,我们将尝试深入了解PyTorch AMD的主题,并尝试了解什么是PyTorch AMD,如何使用PyTorch AMD,AMD中的图像分类模型,其相关实例,最后给出我们的结论。
什么是PyTorch AMD?
PyTorch AMD是框架的容器,允许我们运行AMD的机器学习框架的容器。要做到这一点,你的系统的docker环境有必要支持AMD的GPU。
单节点服务器的最低要求是,它应该有X86-64 CPU或CPU以及AMD instinct MI100的GPU和Radeon instinct MI50(S)的GPU。使用的操作系统应该是Centos 8.3或更高版本或Ubuntu 18.04或更高版本。ROCm的驱动程序应与4.2版本兼容,在运行时使用Docker Engine Singularity容器。
默认情况下,框架的PyTorch AMD容器所做的考虑和推测是,服务器应包含x-86-64单个或多个CPU,并应至少有一个上市的AMD GPU。此外,为了运行docker容器,服务器上应安装指定或更高版本的上市ROCm驱动程序和所需操作系统。最后,服务器应包含docker引擎以运行容器。
如果你想去安装Docker引擎,请访问这个链接。为了安装最新版本的奇异性,如果已经计划使用奇异性,那么请访问这个链接。对于ROCm的安装程序以及有效性检查,请通过此链接。
如何使用PyTorch AMD?
AMD是一个开源的平台,具有很高的性能和灵活性。它伴随着各种库、编译器和语言,可供从事机器学习、人工智能和HPC技术的开发人员和社区使用,使他们的编码任务变得简单、快速,并在其中实现复杂的逻辑和功能。最大的任务是,PyTorch AMD为你提供了容器。
为了在PyTorch AMD中获得和运行容器,我们可以利用以下命令---
Docker pull “name of the container”
例如,对于PyTorch的AMDih容器,该命令将是--。
docker pull AMDih / PyTorch : rocm4.2_ubuntu18.04_py3.6_PyTorch_1.9.0
AMD中的图像分类模型
大体上,图像分类可以通过使用PyTorch或AMD中的tensorflow这两种技术中的任何一种来完成。其中一些产品包括AMD Radeon instinct MI50、AMD Instinct MI100,而对于tensorflow同样可以使用。
有各种模型可用于AMD的图像分类。其中一些是如下所列的 -
- Efficent b0和b7
- Resnet 101和50
- Inceptive v3
为了在PyTorch AMD中运行特定的图像容器,您必须对您所安装的操作系统以及在运行AMD的容器过程中所安装的软件及其版本进行检查。在运行容器时需要遵循的一些步骤如下-- 1.
- 搜索名为 "标签 "的选项卡,然后点击位于其中的容器镜像发布,这是你要运行的。
- 现在,在pull标签一栏中,尝试点击命令图标,这将帮助你复制docker pull命令。
- 你将不得不通过在系统中打开命令提示符来粘贴你复制的命令。在这一步,拉动容器镜像的工作开始了。在你进行下一步之前,确保docker的拉动完成了。
- 现在,拉出的容器镜像应该被运行。为了运行容器,你必须根据需要和场景选择交互式或非交互式模式。
- 在运行该命令时,"-it "参数代表运行交互式模式。
- 选项"-rm "指定容器在完成后应被删除。
- 参数"-v "用于指定挂载的目录。
- 我们需要在容器中访问的主机系统的文件或目录的绝对路径是通过使用参数local_dir指定的。
- 目标目录的绝对路径是在你出现在容器中时通过使用 container_dir 参数来指定的。
- xx是容器的版本。
- 当你想在镜像中运行特定的命令时,应指定命令参数。
PyTorch AMD的例子
让我们来看看PyTorch AMD的一个例子------。
def sampleEducbaExample(args, educbaModel, sampleEducbaExample_loader):
educbaModel.eval()
corectionPrecision = 0
cumulativeCount = 0
with torch.no_grad():
for data, target in sampleEducbaExample_loader:
achievedOutput = educbaModel(data)
predictedValue = achievedOutput.argmax(dim=1)
corectionPrecision += predictedValue.eq(target.view_as(predictedValue)).sum()
cumulativeCount += args.sampleEducbaExample_batch_size
cumulativeCorrections = corectionPrecision.copy().get().float_precision().long().item()
print('Test set: Accuracy: {}/{} ({:.0f}%)'.format(
cumulativeCorrections, cumulativeCount,
100.* cumulativeCorrections / cumulativeCount))
执行上述程序的输出在控制台面板上给出了以下结果 -

在这里,我们以安全的方式进行了从头到尾的预测。服务器和客户端都是完全不知道的。服务器不知道分类的输出和数据的输入,客户也不知道服务器的模型权重。
结论
我们可以使用PyTorch AMD来提高用户的数据保护和安全机器学习。PyTorch 3.6的docker容器内部提供了AMD支持。