基于Pytorch实现AI写藏头诗

news2024/11/21 2:32:02

网上你找了一圈发现开源的代码不是付费订阅就是代码有问题,基于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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1821210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动控制理论实验---IDFT和FFT算法的原理和MATLAB编程

1、实验设备 PC计算机1台&#xff0c;MATLAB软件1套。 2、实验目的 掌握IDFT&#xff08;逆离散傅里叶变换&#xff09;算法的原理和MATLAB编程方法。了解FFT&#xff08;快速傅里叶变换&#xff09;算法&#xff0c;并能够调用MATLAB的fft函数进行频域变换。验证IDFT程序的…

ChatGPT:自然语言处理的新纪元与OpenAI的深度融合

随着人工智能技术的蓬勃发展&#xff0c;自然语言处理&#xff08;NLP&#xff09;领域取得了显著的进步。OpenAI作为这一领域的领军者&#xff0c;以其卓越的技术实力和创新能力&#xff0c;不断推动着NLP领域向前发展。其中ChatGPT作为OpenAI的重要成果更是在全球范围内引起了…

Day01 数据结构概述

目录 一、数据结构概述 1、基本概念 2、数据结构 3、逻辑关系&#xff08;线性结构&非线性结构&#xff09; 4、物理结构&#xff08;存储结构&#xff09; 5、算法 6、算法特征 二、时空复杂度 1、时间复杂度 2、空间复杂度 3、结构类型 一、数据结构概述 1、…

【FPGA项目】bin文件ram存取回环测试

&#x1f389;欢迎来到FPGA专栏~bin文件ram存取回环测试 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大…

据说可以防静电和浪涌的P6KE30CA

公司有些变送器之前在最后一道校准时&#xff0c;经常发生烧毁的情况。所以在电路的防反接的M7二极管前面又增加了一个TVS二极管&#xff0c;型号P6KE30CA。但愿加了这个好使把。今天又研究了一下这个TVS管子&#xff0c;把搜索到的东西记录一下。放这里备忘把&#xff0c;忘记…

C语言| 把数组a赋给数组b

把数组a赋给数组b, 正确的写法是用for循环&#xff0c;将数组a中的元素一个一个赋给数组b的元素。 #include <stdio.h> int main(void) { int a[5] {11, 22, 33, 44, 55}; int b[5]; int i; for(i0; i<5; i) { b[i] a[i]; printf(…

Java开发工具的下载

Java开发工具的下载 IDEA概述 IDEA全称InteliJ IDEA&#xff0c;是用于Java语言开发的集成环境&#xff0c;它是业界公认的目前用于Java程序开发最 好的工具。 集成环境 把代码编写&#xff0c;编译&#xff0c;执行&#xff0c;调试等多种功能综合到一起的开发工具。 让我…

证照之星是一款很受欢迎的证件照制作软件

证照之星是一款很受欢迎的证件照制作软件&#xff0c;证照之星可以为用户提供“照片旋转、裁切、调色、背景处理”等功能&#xff0c;满足用户对证件照制作的基本需求。本站证照之星下载专题为大家提供了证照之星电脑版、安卓版、个人免费版等多个版本客户端资源&#xff0c;此…

IEC61850 调试工具 工程师必备

文章目录 IEC61850 调试工具 工程师必备主要功能软件截图 IEC61850 调试工具 工程师必备 下载地址&#xff1a;http://www.redisant.cn/iec61850client IEC 61850 是国际电工委员会&#xff08;IEC&#xff09;制定的一项国际标准&#xff0c;主要用于电力系统自动化领域&…

后端跨域问题的处理

问题描述 在做前后端分离的项目时&#xff0c;很有可能会遇到这样一种情况&#xff1a; 就是在游览器中请求后端的接口&#xff0c;出现了 CORS error 错误 报错信息如下&#xff1a; Access to XMLHttpRequest at http://localhost:8860/user/auth/login from origin http:…

常见的 EVM 版本以及它们的区别

EVM&#xff08;以太坊虚拟机&#xff09;版本的演进是为了引入新的特性和改进以太坊平台的安全性、效率和功能性。每个版本通常伴随着以太坊网络的硬分叉&#xff0c;这是以太坊协议的重大升级。以下是一些常见的EVM版本及其主要区别&#xff1a; Homestead (2016年3月)&…

图像生成新篇章:Stable Diffusion 3 Medium开源评析

摘要 在数字艺术与人工智能的交汇点上&#xff0c;Stable Diffusion 3&#xff08;SD3&#xff09;的开源无疑是一场技术革新的盛宴。就在3月份&#xff0c;我撰写了一篇博文&#xff0c;深入探讨了SD3的技术报告内容与介绍&#xff0c;文章发表在CSDN博客上&#xff0c;https:…

同城如何异地共享文件?

在现代社会中&#xff0c;跨地区的合作变得越来越普遍&#xff0c;而这也带来了共享文件的需求。当我们身处不同的城市&#xff0c;如何高效地共享文件已经成为一项迫切的需求。本文将介绍一种名为“同城异地共享文件”的解决方案&#xff0c;帮助解决这一问题。 2. 天联组网—…

Day02 顺序表

目录 1、顺序表 2、随机访问&顺序访问 3、思考 4、顺序表的封装 1、顺序表 数组在数据结构中是属于线性表的一种&#xff0c;线性表是由一组具有n个相同类型的数据元素组成的。线性表中的任何一个数据元素 有且只有一个直接前驱有且只有一个直接后继首元素是没有前驱的…

学习Java中的Future类

学习Java中的Future类 Future接口在Java 5中引入&#xff0c;作为java.util.concurrent包的一部分。它代表一个异步计算的结果&#xff0c;当计算完成时可以通过Future对象获取结果。Future对象提供了一些方法来检查任务是否完成、等待任务完成并获取任务结果、取消任务等。 …

【python】tkinter编程三大布局管理器pack、grid、place应用实战解析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

leetcode240 搜索二维矩阵II

题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18…

redis序列化

文章目录 1、为什么要进行序列化操作&#xff1f;2、序列化方式2.1、自定义序列化2. 2、StringRedisTemplate&#xff08;重点&#xff09; 1、为什么要进行序列化操作&#xff1f; 不进行序列化向redis存入数据代码&#xff1a; SpringBootTest class RedisDemoApplicationT…

渗透测试练习题解析 6 (CTF web)

1、[HCTF 2018]admin 1 考点&#xff1a;二次注入 先注册一个账号看看&#xff0c;注册 admin 会提示该用户名已存在&#xff0c;那我们就换一个用户名 观察页面功能&#xff0c;存在一个修改密码&#xff0c;开始的思路是想看看能否通过该密码功能抓包然后修改用户名为 admin …

RAG_Example

今天尝试基于langchain进行LLM RAG搭建&#xff0c;感觉使用难度没有想象中大。具体流程参考末尾链接。 主要流程包括下面几个模块&#xff0c;每一个模块都有很多选择&#xff0c;而不是唯一解。 但这里可以感受到潜在的几个问题 1. 文本转换过程中&#xff0c;PDF的信息可…