Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
muchenjin 2fb5cbe4d7 | 1 year ago | |
---|---|---|
ms_adapter | 1 year ago | |
testing/ut | 1 year ago | |
third_party/einops | 1 year ago | |
.drone.yml | 1 year ago | |
.gitignore | 1 year ago | |
CONTRIBUTING_CN.md | 1 year ago | |
LICENSE | 1 year ago | |
README.md | 1 year ago | |
README.rst | 1 year ago | |
README_en.md | 1 year ago | |
SupportedList.md | 1 year ago | |
USER_GUIDE.md | 1 year ago | |
pylint_check.sh | 1 year ago | |
pylintrc | 1 year ago | |
requirements.txt | 1 year ago | |
run.sh | 1 year ago | |
setup.py | 1 year ago |
简体中文 | English
MSAdapter是MindSpore适配PyTorch接口的工具,其目的是在不改变原有PyTorch用户的使用习惯情况下,使得PyTorch代码能在昇腾上获得高效性能.
import torch
替换为import ms_adapter.pytorch
即可实现模型能支持昇腾上训练。模型中所使用的高阶APIs支持状态可以从这里找到 Supported List请根据MindSpore官网安装指南 ,安装2.0.0Nightly版本的MindSpore。
pip install ms_adapter
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 ms_adapter.pytorch.utils.data import DataLoader
from ms_adapter.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 ms_adapter.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 ms_adapter.pytorch as torch
import ms_adapter.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 other
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》