旷视天元MegEngine环境搭建及unet

本文介绍了如何在Ubuntu 18.04上搭建旷视天元MegEngine的CUDA 10.1环境,包括禁用自带显卡驱动、安装NVIDIA驱动430.40、下载CUDA 10.1并配置环境变量,以及CUDNN的安装步骤。最后,作者提到将在后续研究GitHub上的Unet实现。
摘要由CSDN通过智能技术生成

    旷视科技开源的天元框架,在有pytorch基础的前提下上手很快,中文文档读起来也简单,有自己的社区为用户解决问题。在上面提问解还是很快会得到解决的。 然后华为在四月份也要公测它的全场景MinSpore,有的公司原本有整体架构,想要全都换新的也不是那么简单,各种框架到底哪个会是下一个主流呢。

    天元支持的环境 

我的电脑环境是 Ubuntu 18.04  cuda10.0

目前 MegEngine 安装包集成了使用 GPU 运行代码所需的 CUDA 10.1 环境,不区分 CPU 版本和 GPU 版本。如果您想运行 GPU 程序,请保证机器本身配有 NVIDIA 显卡,并且 驱动 版本高于 418.x 。

由于看到文档中写着CUDA 10.1, 所以我又重装了一下ubuntu的环境,cuda10.0的我没实验好不好使

1.安装显卡驱动

禁用自带显卡驱动
   

sudo gedit /etc/modprobe.d/blacklist.conf 

在打开的文档末尾,加上下面两行代码:

 blacklist nouveau
 options nouveau modeset=0

 更新

sudo update-initramfs -u

 重启电脑reboot

要使用PyTorch搭建UNet,可以按照以下步骤进行: 1. 导入必要的模块: ```python import torch import torch.nn as nn import torch.nn.functional as F ``` 2. 定义UNet的核心模块: ```python class DoubleConv(nn.Module): def __init__(self, in_channels, out_channels): super(DoubleConv, self).__init__() self.conv = nn.Sequential( nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1), nn.BatchNorm2d(out_channels), nn.ReLU(inplace=True), nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1), nn.BatchNorm2d(out_channels), nn.ReLU(inplace=True) ) def forward(self, x): return self.conv(x) ``` 3. 定义UNet的编码器: ```python class UNet(nn.Module): def __init__(self, in_channels, out_channels): super(UNet, self).__init__() self.down1 = DoubleConv(in_channels, 64) self.down2 = DoubleConv(64, 128) self.down3 = DoubleConv(128, 256) self.down4 = DoubleConv(256, 512) self.up1 = nn.ConvTranspose2d(512, 256, kernel_size=2, stride=2) self.up2 = nn.ConvTranspose2d(256, 128, kernel_size=2, stride=2) self.up3 = nn.ConvTranspose2d(128, 64, kernel_size=2, stride=2) self.up4 = nn.ConvTranspose2d(64, out_channels, kernel_size=2, stride=2) def forward(self, x): x1 = self.down1(x) x2 = self.down2(F.max_pool2d(x1, 2)) x3 = self.down3(F.max_pool2d(x2, 2)) x4 = self.down4(F.max_pool2d(x3, 2)) x = self.up1(x4) x = self.up2(torch.cat([x, x3], dim=1)) x = self.up3(torch.cat([x, x2], dim=1)) x = self.up4(torch.cat([x, x1], dim=1)) return x ``` 4. 创建UNet实例并定义输入输出通道数: ```python model = UNet(in_channels=3, out_channels=1) ``` 这是一个基本的UNet模型,你可以根据自己的需求进行修改和扩展。记得在训练之前,要根据你的任务定义损失函数和优化器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值