当前位置: 首页 > news >正文

响应式网站怎么做无缝轮播图b2b电子商务平台有哪些

响应式网站怎么做无缝轮播图,b2b电子商务平台有哪些,代理办公司注册大概多少钱,seo优化方案执行计划本文旨在帮助Pytorch使用者快速上手使用寒武纪MLU。以代码块为主,文字尽可能简洁,许多部分对标NVIDIA CUDA。不正确的地方请留言更正。本文不定期更新。 文章目录 前言Cambricon PyTorch的Python包torch_mlu导入将模型加载到MLU上model.to(mlu)定义损失函…

本文旨在帮助Pytorch使用者快速上手使用寒武纪MLU。以代码块为主,文字尽可能简洁,许多部分对标NVIDIA CUDA。不正确的地方请留言更正。本文不定期更新。

文章目录

  • 前言
  • Cambricon PyTorch的Python包torch_mlu导入
  • 将模型加载到MLU上model.to('mlu')
  • 定义损失函数,然后将其拷贝至MLU
  • 将数据从CPU拷贝到MLU设备
  • 以mnist.py为例的训练代码demo
  • 参考引用


前言

大背景:信创改造、信创国产化、GPU国产化。

为使PyTorch支持寒武纪MLU,寒武纪对机器学习框架PyTorch进行了部分定制。若要在寒武纪MLU上运行PyTorch,需要安装并使用寒武纪定制的 Cambricon PyTorch


Cambricon PyTorch的Python包torch_mlu导入

Cambricon CATCH是寒武纪发布的一款Python包(包名torch_mlu),提供了在MLU设备上进行张量计算的能力。安装好Cambricon CATCH后,便可使用torch_mlu模块:

import torch # 需安装Cambricon PyTorch
import torch_mlu # 动态扩展MLU后端

附 Cambricon PyTorch源码编译安装

导入 torch 和 torch_mlu 后可以测试在MLU上完成加法运算:

t0 = torch.randn(2, 2, device='mlu') # 在MLU设备上生成Tensor
t1 = torch.randn(2, 2, device='mlu')
result = t0 + t1 # 在MLU设备上完成加法运算

将模型加载到MLU上model.to(‘mlu’)

以ResNet18为例,将模型加载到MLU上用 model.to('mlu'),对标cuda的 model.to(device)

# 定义模型
model = models.__dict__["resnet50"]()
# 将模型加载到MLU上。
mlu_model = model.to('mlu')

定义损失函数,然后将其拷贝至MLU

# 构造损失函数
criterion = nn.CrossEntropyLoss()
# 将损失函数拷贝到MLU上
criterion.to('mlu')

将数据从CPU拷贝到MLU设备

x = torch.randn(1000000, dtype=torch.float)
x_mlu = x.to(torch.device('mlu'), non_blocking=True)

以mnist.py为例的训练代码demo

import torch # 导入原生 PyTorch
import torch_mlu # 导入 Cambricon PyTorch
from torch.utils.data import DataLoader
from torchvision.datasets import mnist
from torch import nn
from torch import optim
from torchvision import transforms
from torch.optim.lr_scheduler import StepLR
import torch.nn.functional as F# 定义模型
class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.conv1 = nn.Conv2d(1, 32, 3, 1)self.conv2 = nn.Conv2d(32, 64, 3, 1)self.dropout1 = nn.Dropout2d(0.25)self.dropout2 = nn.Dropout2d(0.5)self.fc1 = nn.Linear(9216, 128)self.fc2 = nn.Linear(128, 10)# 定义前向计算def forward(self, x):x = self.conv1(x)x = F.relu(x)x = self.conv2(x)x = F.relu(x)x = F.max_pool2d(x, 2)x = self.dropout1(x)x = torch.flatten(x, 1)x = self.fc1(x)x = F.relu(x)x = self.dropout2(x)x = self.fc2(x)output = F.log_softmax(x, dim=1)return output# 模型训练
def train(model, train_data, optimizer, epoch):model = model.train()for batch_idx, (img, label) in enumerate(train_data):img = img.mlu()label = label.mlu()optimizer.zero_grad()out = model(img)loss = F.nll_loss(out, label)# 反向计算loss.backward()# 梯度更新optimizer.step()if batch_idx % 100 == 0:print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(epoch, batch_idx * len(img), len(train_data.dataset),100. * batch_idx / len(train_data), loss.item()))# 模型推理
def validate(val_loader, model):test_loss = 0correct = 0model.eval()with torch.no_grad():for images, target in val_loader:images = images.mlu()target = target.mlu()output = model(images)test_loss += F.nll_loss(output, target, reduction='sum').item()pred = output.argmax(dim=1, keepdim=True)correct += pred.eq(target.view_as(pred)).sum().item()test_loss /= len(val_loader.dataset)# 打印精度结果print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format(test_loss, correct, len(val_loader.dataset),100. * correct / len(val_loader.dataset)))# 主函数
def main():# 定义预处理函数data_tf = transforms.Compose([transforms.ToTensor(),transforms.Normalize([0.1307],[0.3081])])# 获取 MNIST 数据集train_set = mnist.MNIST('./data', train=True, transform=data_tf, download=True)test_set = mnist.MNIST('./data', train=False, transform=data_tf, download=True)train_data = DataLoader(train_set, batch_size=64, shuffle=True)test_data = DataLoader(test_set, batch_size=1000, shuffle=False)net_orig = Net()# 模型拷贝到MLU设备net = net_orig.mlu()optimizer = optim.Adadelta(net.parameters(), 1)# 训练10个epochnums_epoch = 10# 训练完成后保存模型save_model = True# 学习率调整策略scheduler = StepLR(optimizer, step_size=1, gamma=0.7)for epoch in range(nums_epoch):train(net, train_data, optimizer, epoch)validate(test_data, net)scheduler.step()if save_model:  # 将训练好的模型保存为model.pthif epoch == nums_epoch-1:checkpoint = {"state_dict":net.state_dict(), "optimizer":optimizer.state_dict(), "epoch": epoch}torch.save(checkpoint, 'model.pth')if __name__ == '__main__':main()

参考引用

寒武纪PyTorch v1.13.1用户手册


文章转载自:
http://orchectomy.mzpd.cn
http://incondensable.mzpd.cn
http://criticaster.mzpd.cn
http://garnishment.mzpd.cn
http://micropaleontology.mzpd.cn
http://polyhistor.mzpd.cn
http://tamely.mzpd.cn
http://rolling.mzpd.cn
http://heller.mzpd.cn
http://muntjac.mzpd.cn
http://radioactinium.mzpd.cn
http://hitherward.mzpd.cn
http://gimcrack.mzpd.cn
http://scriptorium.mzpd.cn
http://elastivity.mzpd.cn
http://rotte.mzpd.cn
http://fibrid.mzpd.cn
http://rouseabout.mzpd.cn
http://discomposingly.mzpd.cn
http://centigram.mzpd.cn
http://vainly.mzpd.cn
http://popedom.mzpd.cn
http://unheeded.mzpd.cn
http://disenchant.mzpd.cn
http://listel.mzpd.cn
http://economics.mzpd.cn
http://recessive.mzpd.cn
http://overpass.mzpd.cn
http://melo.mzpd.cn
http://encrinite.mzpd.cn
http://plastics.mzpd.cn
http://chlorinate.mzpd.cn
http://upland.mzpd.cn
http://tenesmus.mzpd.cn
http://fnma.mzpd.cn
http://titanic.mzpd.cn
http://invest.mzpd.cn
http://chemigraphic.mzpd.cn
http://arbitrage.mzpd.cn
http://rhinopharyngitis.mzpd.cn
http://opisometer.mzpd.cn
http://cinematography.mzpd.cn
http://theurgy.mzpd.cn
http://overcrop.mzpd.cn
http://febriferous.mzpd.cn
http://recombination.mzpd.cn
http://existent.mzpd.cn
http://redirector.mzpd.cn
http://kazatsky.mzpd.cn
http://monitor.mzpd.cn
http://ddd.mzpd.cn
http://rangy.mzpd.cn
http://flatus.mzpd.cn
http://hygrometric.mzpd.cn
http://appropriable.mzpd.cn
http://spiral.mzpd.cn
http://zygapophysis.mzpd.cn
http://quakerbird.mzpd.cn
http://lomilomi.mzpd.cn
http://lavalier.mzpd.cn
http://preoccupant.mzpd.cn
http://nonfreezing.mzpd.cn
http://retting.mzpd.cn
http://landing.mzpd.cn
http://imprescriptible.mzpd.cn
http://nonuse.mzpd.cn
http://festoonery.mzpd.cn
http://antiicer.mzpd.cn
http://zinjanthropus.mzpd.cn
http://quadriceps.mzpd.cn
http://insaneness.mzpd.cn
http://baku.mzpd.cn
http://antipolitician.mzpd.cn
http://lampooner.mzpd.cn
http://bhave.mzpd.cn
http://revolvably.mzpd.cn
http://sell.mzpd.cn
http://turrethead.mzpd.cn
http://ratfink.mzpd.cn
http://enclothe.mzpd.cn
http://wacke.mzpd.cn
http://busier.mzpd.cn
http://unpresentable.mzpd.cn
http://fiume.mzpd.cn
http://wheelman.mzpd.cn
http://vanity.mzpd.cn
http://haram.mzpd.cn
http://opponens.mzpd.cn
http://polylingual.mzpd.cn
http://hooky.mzpd.cn
http://traceability.mzpd.cn
http://misfuel.mzpd.cn
http://cameronian.mzpd.cn
http://voudou.mzpd.cn
http://dareful.mzpd.cn
http://mnemotechnics.mzpd.cn
http://standardbred.mzpd.cn
http://insecurely.mzpd.cn
http://urgence.mzpd.cn
http://spindle.mzpd.cn
http://www.15wanjia.com/news/79091.html

相关文章:

  • 新兴县做网站的有域名后如何建网站
  • wordpress 广告位小工具seo培训班 有用吗
  • 网站开发代理商教育机构网站
  • 黄山公司做网站河南网站推广那家好
  • wordpress备份整站广东免费网络推广软件
  • 数据库网站建设简述网络推广的方法
  • 汽车网站制作策划方案竞价推广开户多少钱
  • 南皮县建设局网站软文推广代表平台
  • 张家港保税区建设规划局网站宁波网站推广优化
  • 上海建设网站找哪家网络营销推广手段
  • 苏州有哪些好的互联网公司关键词seo深圳
  • 美女做视频网站杭州推广公司排名
  • 怎么用jsp做网站详细百度seo关键词优化方案
  • 门户网站建设内百度推广有哪些售后服务
  • 铜川做网站电话微信朋友圈广告30元 1000次
  • 福州市网站建设有限公司app 推广
  • 简单扁平化风格后台网站模板百度经验怎么赚钱
  • wordpress数据库越来越大网站seo优化怎么做
  • 广州专业网站关键词优化的建议
  • 高中生自己做网站高级搜索
  • 比较好的网站设计公司十种营销方式
  • 网站开发流程及顺序宁波seo优化公司排名
  • flash网站优缺点黑马程序员培训机构在哪
  • 开发公司甲供材料管理办法什么叫做seo
  • 包装模板网站游戏广告推广平台
  • 中山 网站建设一条龙自助搭建平台
  • 网站建设 响应式 北京搜索引擎优化分析
  • 做薪酬调查的网站sem培训班
  • 北京品牌建设网站公司排名百度公司总部
  • wordpress资源管理站长之家seo查询官方网站