Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
|
10 hours ago | |
---|---|---|
msadapter | 10 hours ago | |
testing/ut | 10 hours ago | |
third_party/einops | 1 day ago | |
.drone.yml | 1 month ago | |
.gitignore | 4 months ago | |
CONTRIBUTING_CN.md | 1 day ago | |
ConstraintList.md | 2 days ago | |
ConstraintList_en.md | 2 days ago | |
LICENSE | 7 months ago | |
README.md | 1 day ago | |
README.rst | 1 day ago | |
README_en.md | 1 day ago | |
SupportedList.md | 2 days ago | |
SupportedList_en.md | 2 days ago | |
USER_GUIDE.md | 1 day ago | |
pylint_check.sh | 1 day ago | |
pylintrc | 1 month ago | |
requirements.txt | 2 months ago | |
run.sh | 4 months ago | |
setup.py | 1 day ago |
简体中文 | English
MSAdapter是MindSpore适配PyTorch接口的工具,其目的是在不改变原有PyTorch用户的使用习惯情况下,使得PyTorch代码能在昇腾上获得高效性能.
import torch
替换为import msadapter.pytorch
即可实现模型能支持昇腾上训练。模型中所使用的高阶APIs支持状态可以从这里找到 Supported List请根据MindSpore官网安装指南 ,安装2.0.0Nightly版本的MindSpore。
pip install msadapter
git clone https://git.openi.org.cn/OpenI/MSAdapter.git
cd MSAdapter
python setup.py install
如果出现权限不足的提示,请按照如下方式安装:
python setup.py install --user || exit 1
在数据处理和模型构建上,MSAdapter可以和PyTorch一样使用,模型训练部分代码需要自定义,示例如下:
from msadapter.pytorch.utils.data import DataLoader
from msadapter.torchvision import datasets, transforms
transform = transforms.Compose([transforms.Resize((224, 224), interpolation=InterpolationMode.BICUBIC),
transforms.ToTensor(),
transforms.Normalize(mean=[0.4914, 0.4822, 0.4465], std=[0.247, 0.2435, 0.2616])
])
train_images = datasets.CIFAR10('./', train=True, download=True, transform=transform)
train_data = DataLoader(train_images, batch_size=128, shuffle=True, num_workers=2, drop_last=True)
from msadapter.pytorch.nn import Module, Linear, Flatten
class MLP(Module):
def __init__(self):
super(MLP, self).__init__()
self.flatten = Flatten()
self.line1 = Linear(in_features=1024, out_features=64)
self.line2 = Linear(in_features=64, out_features=128, bias=False)
self.line3 = Linear(in_features=128, out_features=10)
def forward(self, inputs):
x = self.flatten(inputs)
x = self.line1(x)
x = self.line2(x)
x = self.line3(x)
return x
import msadapter.pytorch as torch
import msadapter.pytorch.nn as nn
import mindspore as ms
net = MLP()
net.train()
epochs = 500
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(net.parameters(), lr=0.01, momentum=0.9, weight_decay=0.0005)
# 定义训练过程
loss_net = ms.nn.WithLossCell(net, criterion)
train_net = ms.nn.TrainOneStepCell(loss_net, optimizer)
for i in range(epochs):
for X, y in train_data:
res = train_net(X, y)
print("epoch:{}, loss:{:.6f}".format(i, res.asnumpy()))
# 模型保存
ms.save_checkpoint(net, "save_path.ckpt")
欢迎开发者参与贡献。更多详情,请参阅我们的贡献指南.
MindSpore对PyTorch接口的支持工具
Python Markdown