【Mindspore】深度学习、MindSpore使用与杂七杂八

1. Linux使用GPU

众所周知的,Mindspore的GPU版本只能在Linux系统上使用。并且VMWare虚拟机无法使用主机的GPU资源,除非显卡支持虚拟化。以下是两种解决方案:

1.1 Win10使用Linux子系统

参考:

开启Linux子系统:

  1. 开启【开发者模式】;
  2. 控制面板> 程序> 程序和功能】,开启【适用于 Linux 的 Windows 子系统】,重启;
  3. 在应用商店选择Ubuntu并下载,启动,设置用户名和密码;
  4. powershell通过wsl -l -v查看分配给每个已安装的 Linux 分发版的 WSL 版本;
  5. 使用LxRunOffline将子系统从C盘迁移出来。

至此,Linux子系统开启完毕。使用GPU需要升级到WSL2:

  1. 控制面板> 程序> 程序和功能】,开启【虚拟机平台】,重启;
  2. 下载并安装适用于 x64 计算机的 WSL Linux 内核更新包
  3. powershell’通过wsl --set-version Ubuntu 2设置WSL版本为2。

Windows端更新支持WSL的显卡驱动:

  1. 下载支持WSL的CUDA→CUDA on Windows Subsystem for Linux (WSL),会替代原有的CUDA;
  2. 根据CUDA版本选择对应的cuDNN→cuDNN download
  3. Win和Linux执行nvidia-smi,结果一致即可。

1.2 使用Docker for Windows

  1. 开启WSL2同上,安装CUDA和cuDNN同上;安装Docker for Windows;
  2. 随便拉一个容器,使用-gpus all命令即可允许容器使用主机GPU;
  3. 容器内执行nvidia-smi,与主机结果一致即可;
    docker pull ubuntu:18.04
    docker run --gpus all -it ubuntu:18.04 /bin/bash
    
  4. 基础配置,ssh远程连接:
    ①配置密码;
    vim /etc/ssh/sshd_config→修改 PermitRootLogin yesservice ssh start重启服务;
    ipconfig查看本机ip地址;
    ④docker端口映射,远程使用IP:50001登陆即可
    docker commit {Container ID} ubuntu-dl
    docker run --gpus all -it -p 50001:22 ubuntu-dl /bin/bash
    

2. 深度学习环境配置

2.1 Anaconda

  1. 清华镜像库:选择想要的版本下载并安装,配置环境变量;
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2022.10-Linux-x86_64.sh
bash ./Anaconda3-2022.10-Linux-x86_64.sh
export PATH=$PATH:/root/anaconda3/bin
  1. 创建虚拟环境。
conda create -n mindspore-py37 python=3.7
 #解决CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
source ~/anaconda3/etc/profile.d/conda.sh
conda activate mindspore-py37

2.2 CUDA与cuDNN

安装CUDA11.1:

wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run
sudo sh cuda_11.1.1_455.32.00_linux.run
echo -e "export PATH=/usr/local/cuda-11.1/bin:\$PATH" >> ~/.bashrc
echo -e "export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:\$LD_LIBRARY_PATH" >> ~/.bashrc
source ~/.bashrc

安装cuDNN8.7,下载→cuDNN Download

tar -xf ./cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz
chmod 666 /usr/local/cuda/include
cd ./cudnn-linux-x86_64-8.7.0.84_cuda11-archive
cp ./include/cudnn*.h /usr/local/cuda/include
cp ./lib/libcudnn* /usr/local/cuda/lib64
chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

查看版本,测试安装是否成功:

(mindspore-py37) root:/# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:09:46_PDT_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.TC455_06.29190527_0
(mindspore-py37) root:/# cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 7
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

/* cannot use constexpr here since this is a C-only file */

2.3 pytorch

PyTorch官网寻找对应的版本,根据提供的命令安装即可。
我的环境是:CUDA=11.1,cuDNN=8.7.0,python=3.7;对应的pytorch版本为1.8。
注意:如果anaconda更换了清华源则不能使用conda安装,请使用pip。
具体原因可以参考torch.cuda.is_available()返回false——解决办法这篇博客,简单说就是清华源的问题。

pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html

测试:

>>> import torch
>>> torch.cuda.is_available()
True

2.4 MindSpore

参考MindSpore官网即可,安装gcc和1.9版本的MindSpore。

apt-get install gcc -y
export MS_VERSION=1.9.0
# CUDA11.1 + Python3.7
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/${MS_VERSION}/MindSpore/gpu/x86_64/cuda-11.1/mindspore_gpu-${MS_VERSION/-/}-cp37-cp37m-linux_x86_64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple

测试:

>>> import mindspore
>>> mindspore.run_check()
MindSpore version:  1.9.0
The result of multiplication calculation is correct, MindSpore has been installed successfully!

3. mindspore踩坑相关

3.1 metrics

metrics (Union[dict, set]) - 用于模型评估的一组评价函数。例如:{‘accuracy’, ‘recall’}。默认值:None。
可以通过nn.names()获取所有评价函数列表,如下:

>>> import mindspore
>>> names = mindspore.nn.names()
>>> print(names)
['F1', 'acc', 'accuracy', 'auc', 'bleu_score', 'confusion_matrix', 'confusion_matrix_metric', 'cosine_similarity', 'dice', 'hausdorff_distance', 'loss', 'mae', 'mean_surface_distance', 'mse', 'occlusion_sensitivity', 'perplexity', 'precision', 'recall', 'roc', 'root_mean_square_distance', 'top_1_accuracy', 'top_5_accuracy', 'topk']
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
今年的华为开发者大会 HDC 2020 上,除了**昇腾、鲲鹏等自研芯片硬件平台**之外,最令人期待的就是**深度学习框架 MindSpore 的开源**了。今天上午,华为 MindSpore **首席科学家陈雷**在活动中宣布这款产品正式开源,我们终于可以在开放平台上一睹它的真面目。 本文是根据机器之心报道的MindSpore 的开源介绍而整理的.md笔记 作为一款支持**端、边、云独立/协同的统一训练和推理框架,华为希望通过这款完整的软件堆栈,实现**一次性算子开发、一致的开发和调试体验**,以此帮助开发者实现**一次开发,应用在所有设备上平滑迁移**的能力。 三大创新能力:新编程范式,执行模式和协作方式 由**自动微分、自动并行、数据处理**等功能构成 开发算法即代码、运行高效、部署态灵活**的**特点**, 三层核心:从下往上分别是**后端运行时、计算图引擎及前端表示层**。 最大特点:采用了业界最新的 **Source-to-Source 自动微分**,它能**利用编译器及编程语言的底层技术**,进一步**优化以支持更好的微分表达**。主流深度学习框架中主要有**三种自动微分技术,才用的不是静态计算图、动态计算图,而是基于**源码**转换:该技术源以**函数式编程框架**为基础,以**即时编译(JIT)**的方式**在<u>中间表达</u>(编译过程中程序的表达形式)上做自动微分变换**,支持**<u>复杂控制流场景、高阶函数和闭包</u>**。 MindSpore 主要概念就是张量、算子、单元和模型 其代码有两个比较突出的亮点:计算图的调整,动态图与静态图可以一行代码切换;自动并行特性,我们写的串行代码,只需要多加一行就能完成自动并行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值