华为昇腾CANN训练营第一期模型营-第二周-TF模型迁移到NPU平台

华为昇腾CANN训练营第一期模型营-第二周作业

TF代码准备

环境准备

华为昇腾910平台
Tensorflow1.15 + python 3.7.5
Modeldarts 以及Pycharm插件 (一站式开发平台,可以进行数据处理,模型训练,模型部署,没有存储功能)
OBS(对象储存服务,简单来说就是专门存储训练数据的)
代码下载:https://gitee.com/lai-pengfei/LeNet

代码修改,准备迁移

在train.py文件中

from npu_bridge.npu_init import *
from tensorflow.core.protobuf.rewriter_config_pb2 import RewriterConfig
import moxing as mox

main函数中修改为:

def main():
	# 使用OBS上的数据进行训练,不能用自己本地的路径
    mox.file.copy_parallel(src_url="obs://cannztq/MNIST_data/", dst_url="MNIST_data")
    mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
    # 创建session
    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)

    batch_size = cfg.BATCH_SIZE
    parameter_path = cfg.PARAMETER_FILE
    lenet = Lenet()
    max_iter = cfg.MAX_ITER


    saver = tf.train.Saver()
    if os.path.exists(parameter_path):
        saver.restore(parameter_path)
    else:
        sess.run(tf.initialize_all_variables())

    for i in range(max_iter):
        batch = mnist.train.next_batch(50)
        if i % 100 == 0:
            train_accuracy = sess.run(lenet.train_accuracy,feed_dict={
                lenet.raw_input_image: batch[0],lenet.raw_input_label: batch[1]
            })
            print("step %d, training accuracy %g" % (i, train_accuracy))
        sess.run(lenet.train_op,feed_dict={lenet.raw_input_image: batch[0],lenet.raw_input_label: batch[1]})
    save_path = saver.save(sess, parameter_path)
    # 将本地的权重文件复制到OBS上
    mox.file.copy_parallel(src_url="checkpoint/", dst_url="obs://cannztq/ckpt")
    sess.close()

sess.close()是最好要写的,在NPU上训练没问题,但是后续会有问题。

配置Modelarts

若没有授权ModelArts访问您的OBS数据,功能将不能正常使用。

首先进入华为云官网
准备华为云账号
申请AK/SAK,这就像一个钥匙,链接本地与服务器的
先进入账号中心
在这里插入图片描述
点击管理我的凭证
在这里插入图片描述
在这里插入图片描述
然后提示下载一个表格,里面是相关信息。
上面搜索框搜索Modelarts,进入其控制台
首先选择全局配置,然后切换至北京4(目前只有北京四支持NPU训练),然后将刚刚下载的密钥填进去就可以了
在这里插入图片描述
最后下载个pycharm插件,方便大家在本地修改代码,使用插件进行上传
直接点击总览,在最下面点击下载Pycharm Tookit,然后打开pycharm安装 ,file-setting。。
在这里插入图片描述
重启一下IDE,然后在菜单栏找到Modelarts,点击后选择edit,输入AK/SAK就完成了

下载配置OBS

同样搜索进入OBS控制台
在这里插入图片描述
点击下载,选择对应系统,点击下载 OBS Browser+,然后安装
登录,还是需要 AK/SAK
在这里插入图片描述
创建桶,这时候记得还选择北京四
在这里插入图片描述
然后进入桶,上传代码中自带的数据
在这里插入图片描述
然后配置下pycharm,进入刚刚的modelarts插件就可以
在这里插入图片描述
最后运行情况
在这里插入图片描述
最后看到OBS中我们创建的模型文件夹中有了模型文件
在这里插入图片描述
打开modelarts控制台

在这里插入图片描述
看到调用了NPU说明没问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值