【无标题】

本文详细记录了一位初学者参加昇腾训练营的过程,从安装TensorFlow环境到PyCharm配置,再到LeNet模型的训练与迁移。通过自动和手动迁移TensorFlow模型到昇腾环境,并在ModelArts上运行,最终成功完成大作业。适合入门级开发者参考。
摘要由CSDN通过智能技术生成

之前看见稚晖君在动态里转发了昇腾训练营的宣传动态,翻了一下评论区,听说菜鸟也能参加,于是我就去了,一趟流程走下来,感觉还不错,蛮推荐小白去的。然后我在写大作业的时候也罢过程记录了下来,如果还有小白犹豫去不去的话,希望你看完这篇文章之后能鼓起去参加的勇气(头铁一点,xdm)。

下面是大作业的步骤

1.下载安装tensorflow,步骤如下

请添加图片描述

anaconda是个很舒服的东西,你也可以不安装anaconda,直接安装tensorflow。

我下面讲的是再anaconda环境里面安装tensorflow的一些操作:
1.先打开anaconda prompt,查看python的版本,我这里是3.6.4
2.创建tensorflow的环境,代码如下
conda create -n tensorflow(这里的tensorflow其实是环境的名字,你也可以写成abc之类的) python=3.x.x(你的python版本)
3.使用activate tensorflow(你刚刚的环境名字),进入之后如下图

请添加图片描述

这里可以看到你刚刚创建的环境的python的版本

请添加图片描述

4.在该环境中输入conda install tensorflow(gpu版本后面要加上-gpu)==xxx(xxx为版本,完成大作业的版本是tensorflow1.15)

下载太慢可以用以下命令,将国外镜像替换为清华的

pip install tensorflow-gpu==1.15 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
5.安装完成之后检查一下版本,先进入一下python环境(我电脑有两个环境,安装的步骤这里我是用2.1的环境演示)
import tensorflow as tf

#查看tensorflow版本
print(tf.__version__)

print('GPU', tf.test.is_gpu_available())

a = tf.constant(2.0)
b = tf.constant(4.0)
print(a + b)

请添加图片描述

我这里装的是GPU的版本,所以会有对应的GPU True出现

请添加图片描述

到这里,你电脑的tensorflow环境就安装成功了。看完安装步骤相信你应该意识到了,tensorflow就是一个python的包,(怪我傻,刚学完python语法啥都不会),由于我太笨,安装了七八次花了两天(捂脸)

2.安装pycharm和下载LetNet GPU代码

下载链接

pycharm下载地址:Download PyCharm: Python IDE for Professional Developers by JetBrains

(我这里下载的是社区版本)

下载项目代码仓:https://gitee.com/lai-pengfei/LeNet

下载完成pycharm之后配置一下环境,如果是真的菜,可以汉化一下()

先打开左上角文件进入设置进入这个页面在Marketplace里面下载汉化插件并安装[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传请添加图片描述

接下来选择到python解释器,选择刚刚安装好的tensorflow环境

1.打开项目->python解释器->点击右上角设置图标->找到anaconda环境并填写相应路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GxBQz89v-1650426090650)(C:\Users\24170\Desktop\屏幕截图 2022-04-04 203054.png)]

记得选择tensorflow的环境,我这里仅仅是演示,可能并非是我安装的tnsorflow环境

2.将下载好的模型解压(浏览器的话)并在pycharm中打开
3.修改Train.py文件的代码
import tensorflow.examples.tutorials.mnist.input_data as input_data

修改为

from tensorflow.examples.tutorials.mnist import input_data
4.运行,结果如下

请添加图片描述

可以看到模型精度0.98左右,迭代了49900次

到这里,第一个任务就算是完成了,坚持到这的和我一样的菜鸡恭喜,10分拿到了

3.模型迁移

参考网址:

快速入门_昇腾CANN社区版(5.1.RC1.alpha001)_模型开发_TensorFlow模型迁移和训练_自动迁移和训练_华为云 (huaweicloud.com)

1.自动迁移:

1.tensorflow: Ascend TensorFlow Adapter - Gitee.com下载该迁移脚本并解压

2.安装依赖

安装依赖。
pip3 install pandas

pip3 install xlrd==1.2.0

pip3 install openpyxl

pip3 install tkintertable

pip3 install google_pasta

进入脚本安装路径:

请添加图片描述

执行

python main_win.py

注意,此处必须在tensorflow1.15环境下运行才能成功

弹出请添加图片描述

填入相应路径进行迁移,迁移完成记得查看迁移报告

2.手动迁移

经观察多处出现tf.session(),sess.run等可判断,该模型我i第二类sess.run方式的模型,于是

在头文件加上:

from npu_bridge.npu_init import *

sess = tf.Session()

改为这段代码即可:

# sess = tf.Session()
# 修改为CANN sess.run迁移 参考https://support.huaweicloud.com/tensorflowdevg-cann330alphaXtraining/atlasmprtg_13_0009.html
config = tf.ConfigProto()
custom_op = config.graph_options.rewrite_options.custom_optimizers.add()
custom_op.name = "NpuOptimizer"
config.graph_options.rewrite_options.remapping = RewriterConfig.OFF  # 必须显式关闭remap
sess = tf.Session(config=config)

4.安装昇腾环境所需工具并进行设置,跑通模型

1.安装pycharm 的modelarts插件及其设置

到https://console.huaweicloud.com/modelarts/?region=cn-north-4#/dashboard 下载PyCharm Toolkit

在刚刚安装汉化的地方安装本地插件:

请添加图片描述

请添加图片描述

安装重启后在左上角工具栏会出现如下

请添加图片描述

在华为云控制台里面我的凭证下创建访问密钥并下载[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传请添加图片描述

将密钥填入modelarts插件

请添加图片描述

2.安装obs++

步骤四:下载工具并初始化_对象存储服务 OBS_快速入门_华为云 (huaweicloud.com)

用刚刚保存好的密钥登陆obs++并创建桶

上传模型的数据集,将模型中的MINST_data文件夹上传即可

3.使用pycharm下发训练任务,跑通模型

请添加图片描述

在modelarts插件下打开如下[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传请添加图片描述

请添加图片描述

import moxing as mox
mox.file.copy_parallel(src_url="obs://mode-suye/MNIST_data/", dst_url="MNIST_data")

请添加图片描述

print(save_path)

mox.file.copy_parallel(src_url="MNIST_data/", dst_url="obs://mode-suye/ckpt/")#拷贝训练数据到moedlarts

填写好相应路径并保存运行,由于我是直接在npu上运行的,此处我就不展示了。

4.跑通之后,将环境换为npu环境

请添加图片描述

重新运行并等待结果如下图:

请添加图片描述

在modelarts上查看训练情况和日志

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

以及在obs++上查看传回文件

请添加图片描述

请添加图片描述

如果你做到了这里,恭喜你,你已经完成了大作业,菜鸡狂喜,能拿证书了(不包括附加题)。

LeNet-5神经网络 C源代码,这个写的比较好,可以用gcc编译去跑,结合理论可以对深度学习有更深刻的了解 介绍 根据YANN LECUN的论文《Gradient-based Learning Applied To Document Recognition》设计的LeNet-5神经网络,C语言写成,不依赖任何第三方库。 MNIST手写字符集初代训练识别率97%,多代训练识别率98%。 DEMO main.c文件为MNIST数据集的识别DEMO,直接编译即可运行,训练集60000张,测试集10000张。 项目环境 该项目为VISUAL STUDIO 2015项目,用VISUAL STUDIO 2015 UPDATE1及以上直接打开即可编译。采用ANSI C编写,因此源码无须修改即可在其它平台上编译。 如果因缺少openmp无法编译,请将lenet.c中的#include和#pragma omp parallel for删除掉即可。 API #####批量训练 lenet: LeNet5的权值的指针,LeNet5神经网络的核心 inputs: 要训练的多个图片对应unsigned char二维数组的数组,指向的二维数组的batchSize倍大小内存空间指针。在MNIST测试DEMO中二维数组为28x28,每个二维数组数值分别为对应位置图像像素灰度值 resMat:结果向量矩阵 labels:要训练的多个图片分别对应的标签数组。大小为batchSize batchSize:批量训练输入图像(二维数组)的数量 void TrainBatch(LeNet5 *lenet, image *inputs, const char(*resMat)[OUTPUT],uint8 *labels, int batchSize); #####单个训练 lenet: LeNet5的权值的指针,LeNet5神经网络的核心 input: 要训练的图片对应二维数组 resMat:结果向量矩阵 label: 要训练的图片对应的标签 void Train(LeNet5 *lenet, image input, const char(*resMat)[OUTPUT],uint8 label); #####预测 lenet: LeNet5的权值的指针,LeNet5神经网络的核心 input: 输入的图像的数据 labels: 结果向量矩阵指针 count: 结果向量个数 return 返回值为预测的结果 int Predict(LeNet5 *lenet, image input, const char(*labels)[LAYER6], int count); #####初始化 lenet: LeNet5的权值的指针,LeNet5神经网络的核心
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值