开发者的福音:PyTorch 2.5现已支持英特尔独立显卡训练

电子说

1.3w人已加入

描述

[《PyTorch 2.5重磅更新:性能优化+新特性》]中的一个新特性就是:正式支持在英特尔^®^独立显卡上训练模型!

PyTorch 2.5
独立显卡类型
Intel^®^数据中心GPU Max系列
Intel^®^Arc™系列

本文将在Intel^®^Core™ Ultra 7 155H自带的Arc™集成显卡上展示使用Pytorch2.5搭建并训练AI模型的全流程。

搭建开发环境

首先,请安装显卡驱动,参考指南:

https://dgpu-docs.intel.com/driver/client/overview.html

然后,**请下载并安装Anaconda,**链接↓↓

https://www.anaconda.com/download

并用下面的命令创建并激活名为pytorch_arc的虚拟环境:

conda create -n pytorch_arc python=3.11    #创建虚拟环境
conda activate pytorch_arc                 #激活虚拟环境
python -m pip install --upgrade pip        #升级pip到最新版本

接着,安装Pytorch XPU版;

pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpu

滑动查看更多

最后,执行命令,验证安装。看到返回结果为“True”,证明环境搭建成功!

 > > > import torch
 > > > torch.xpu.is_available()

训练ResNet模型

执行下载的训练代码,实现在Intel^®^ Arc™集成显卡上训练ResNet50模型。代码下载链接:

https://gitee.com/Pauntech/Pytorch-2.5
import torch
import torchvision


LR = 0.001
DOWNLOAD = True
DATA = "datasets/cifar10/"


transform = torchvision.transforms.Compose(
    [
        torchvision.transforms.Resize((224, 224)),
        torchvision.transforms.ToTensor(),
        torchvision.transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
    ]
)
train_dataset = torchvision.datasets.CIFAR10(
    root=DATA,
    train=True,
    transform=transform,
    download=DOWNLOAD,
)
train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=128)
train_len = len(train_loader)


model = torchvision.models.resnet50()
criterion = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=LR, momentum=0.9)
model.train()
model = model.to("xpu")
criterion = criterion.to("xpu")


print(f"Initiating training")
for batch_idx, (data, target) in enumerate(train_loader):
    data = data.to("xpu")
    target = target.to("xpu")
    optimizer.zero_grad()
    output = model(data)
    loss = criterion(output, target)
    loss.backward()
    optimizer.step()
    if (batch_idx + 1) % 10 == 0:
         iteration_loss = loss.item()
         print(f"Iteration [{batch_idx+1}/{train_len}], Loss: {iteration_loss:.4f}")
torch.save(
    {
        "model_state_dict": model.state_dict(),
        "optimizer_state_dict": optimizer.state_dict(),
    },
    "checkpoint.pth",
)


print("Execution finished")

总结

使用[PyTorch]在英特尔独立显卡上训练模型将为AI行业新增计算硬件选择!

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分