基于Pytorch实现AI写藏头诗

网上你找了一圈发现开源的代码不是付费订阅就是代码有问题,基于Pytorch实现AI写藏头诗看我这篇就够了。
用到的工具:华为云ModelArts平台的notebook/Pycharm/Vscode都行。
镜像:pytorch1.8-cuda10.2-cudnn7-ubuntu18.04,有GPU优先使用GPU资源。

实验背景

在短时测试使用场景,可使用华为云Modelarts的notebook的公共资源池完成相关场景测试验证。

Modelarts Standard公共资源池提供公共的大规模计算集群,根据用户作业参数分配使用,资源按作业隔离。 用户下发训练作业、部署模型均可以使用ModelArts提供的公共资源池完成,按照使用量计费,方便快捷。公共资源池使用共享资源,在任何时候都有可能排队。有关Modelarts资源池的介绍请参考Modelarts公共资源池

本实验主要介绍基于modelarts的notebook开发环境,来进行LSTM模型的训练->推理的代码实战开发和运行。本实验会使用到ModelArts服务。

实验步骤

操作前提:登录华为云
进入【实验操作桌面】,打开谷歌浏览器进入华为云登录页面。选择【IAM用户登录】模式,于登录对话框中输入系统为您分配的华为云实验账号和密码登录华为云,如下图所示:
注意:账号信息详见实验手册上方,切勿使用您自己的华为云账号登录。

image

任务一:创建开发环境

步骤1 进入控制台

在华为云控制台中搜索并单击“ModelArts”,进入ModelArts控制台。如下图所示:

image

步骤2 进入notebook列表

点击左侧列表中的“开发环境” > “Notebook”,并点击“创建”。如下图所示:

image

步骤3 配置notebook参数

在创建Notebook页面中,进行以下配置。如下图所示:

image

主要参数信息如下,其余配置请保持默认配置

名称:notebook-LSTM(名称固定)

镜像:选择“公共镜像”,并选择“pytorch1.8-cuda10.2-cudnn7-ubuntu18.04”

资源类型:选择“公共资源池”

类型:选择“GPU”

规格:选择“GPU: 1*Pnt1(16GB)|CPU: 8核 64GB”

其他保持默认

确认无误后,点击“立即创建”。

步骤4 提交notebook创建请求

  1. 点击“提交”,即开始创建,如下图所示。

image

点击“立即返回”,稍等片刻即创建成功,您可查看已创建的Notebook。如下图所示:

image

任务二:进入notebook开发环境

步骤1 打开notebook环境

点击新建的notebook的打开按钮,进入notebook开发环境,如下图所示:
image

步骤2 进入notebook开发环境

进入tensorflow开发环境,如下图所示:
image

任务三 运行代码

对下文的每个代码片段,在tensorflow开发环境中,新建一个代码块进行运行,如下图所示:
image

步骤1 安装需要的包

输入:

!pip install torchnet

输出:

Looking in indexes: http://repo.myhuaweicloud.com/repository/pypi/simple
Requirement already satisfied: torchnet in /home/ma-user/anaconda3/envs/PyTorch-1.8/lib/python3.7/site-packages (0.0.4)
Requirement already satisfied: visdom in /home/ma-user/anaconda3/envs/PyTorch-1.8/lib/python3.7/site-packages (from torchnet) (0.2.4)
s (from requests->visdom->torchnet) (1.26.12)
Requirement already satisfied: charset-normalizer~=2.0.0 in /home/ma-user/anaconda3/envs/PyTorch-1.8/lib/python3.7/site-packages (from requests->visdom->torchnet) (2.0.12)
Requirement already satisfied: certifi>=2017.4.17 in /home/ma-user/anaconda3/envs/PyTorch-1.8/lib/python3.7/site-packages (from requests->visdom->torchnet) (2022.9.24)
WARNING: You are using pip version 21.0.1; however, version 24.0 is available.
You should consider upgrading via the '/home/ma-user/anaconda3/envs/PyTorch-1.8/bin/python3.7 -m pip install --upgrade pip' command.

步骤2 获取数据

import moxing as mox
mox.file.copy_parallel('obs://modelarts-labs-bj4-v2/course/NLP_Course/LSTM','LSTM_poem-master')

输出结果可刷新查看右边的文件夹:

image

步骤3 数据集来源和读取数据集

本次采用的是唐诗数据集,一共有接近60000首唐诗,不需要标签,因为AI自动写诗可以看成是语言模型的一个应用
其中一首诗的一句如下:

image
任务定义:给出一首诗的开头几个词,或者首句(随便),续写之后的句子。

测试结果初窥:

image
读取数据集
输入:

%cd /home/ma-user/work/LSTM_poem-master
import numpy as np
file_path="tang.npz"
poem=np.load(file_path,allow_pickle=True)
poem.files

查看结果:

image
一些其他操作:

ix2word,word2ix,data=poem['ix2word'],poem['word2ix'],poem['data']
data.shape
char2ix=word2ix.item()
ix2char=ix2word.item()
vocab_size=len(char2ix)
vocab_size
pad_id=char2ix["</s>"]
start_id=char2ix["<START>"]
end_id=char2ix["<EOP>"]
print(pad_id,start_id,end_id)

查看运行结果

image

步骤4 数据预处理

减少训练的量,选2000首诗进行训练。

data=data[:2000]
data.shape

结果:

image

把放在放到后面,#将数据进行转换。

#把</s>放在放到后面。
def reverse(poem):
    ind=np.argwhere(poem==start_id).item()
    new_poem=poem[ind:len(poem)]
    pad=poem[0:ind]
    return np.hstack((new_poem,pad))
    
#将数据进行转换。
for i in range(len(data)):
    data[i]=reverse(data[i])
for i in range(data.shape

相关推荐

  1. 实验11-1-9 (PTA)

    2024-06-14 18:16:04       39 阅读
  2. Python 基于pytorch从头GPT模型;实现gpt实战

    2024-06-14 18:16:04       42 阅读
  3. 基于 PyTorch 框架一个图片分类模型

    2024-06-14 18:16:04       34 阅读
  4. 基于PyTorch深度学习实战入门系列-PyTorch基础

    2024-06-14 18:16:04       41 阅读
  5. 基于PyTorch深度学习实战入门系列-PyTorch基础

    2024-06-14 18:16:04       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-14 18:16:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-14 18:16:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-14 18:16:04       82 阅读
  4. Python语言-面向对象

    2024-06-14 18:16:04       91 阅读

热门阅读

  1. Redis缓存(笔记三:Redis6新数据类型)

    2024-06-14 18:16:04       27 阅读
  2. junit mockito Dao层

    2024-06-14 18:16:04       32 阅读
  3. 如何对Spring管理bean进行增强

    2024-06-14 18:16:04       36 阅读
  4. cloud compare编译

    2024-06-14 18:16:04       25 阅读
  5. Django Form 组件

    2024-06-14 18:16:04       33 阅读
  6. Scala 入门指南:从零开始的大数据开发

    2024-06-14 18:16:04       30 阅读
  7. Scala入门教程

    2024-06-14 18:16:04       34 阅读
  8. 深度学习 - RNN训练过程推演

    2024-06-14 18:16:04       22 阅读
  9. 构建实时搜索与推荐系统:Elasticsearch与业务结合

    2024-06-14 18:16:04       35 阅读
  10. pytest request.session 保持登录状态

    2024-06-14 18:16:04       27 阅读