LSTM-pytorch 写诗之位置编码
源码和模型地址
https://download.csdn.net/download/weixin_32759777/18339209
from main import *
from config import *
import torch.nn as nn
import math
import torch
class PositionalEncoding(nn.Module):def __init__(self, d_model, dropout=0.1, max_len=5000):super(PositionalEncoding, self).__init__()self.dropout = nn.Dropout(p=dropout)pe = torch.zeros(max_len, d_model)position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1)div_term = torch.exp(torch.arange(0, d_model, 2).float() * (-math.log(10000.0) / d_model))pe[:, 0::2] = torch.sin(position * div_term)pe[:, 1::2] = torch.cos(position * div_term)pe = pe.unsqueeze(0).transpose(0, 1)self.register_buffer('pe', pe)def forward(self, x):'''x: [seq_len, batch_size, d_model]'''x = x + self.pe[:x.size(0), :]return self.dropout(x)class PoetryModel(nn.Module):def __init__(self, vocab_size, embedding_dim, hidden_dim):super(PoetryModel, self).__init__()self.hidden_dim = hidden_dim# 词向量层,词表大小 * 向量维度self.embeddings = nn.Embedding(vocab_size, embedding_dim)# 网络主要结构self.lstm = nn.LSTM(embedding_dim, self.hidden_dim, num_layers=Config.num_layers)# 进行分类self.post=PositionalEncoding(256,0.1,124)self.linear = nn.Linear(self.hidden_dim, vocab_size)def forward(self, input, hidden=None):seq_len, batch_size = input.size()#print(input.shape)if hidden is None:h_0 = input.data.new(Config.num_layers, batch_size, self.hidden_dim).fill_(0).float()c_0 = input.data.new(Config.num_layers, batch_size, self.hidden_dim).fill_(0).float()else:h_0, c_0 = hidden# 输入 序列长度 * batch(每个汉字是一个数字下标),# 输出 序列长度 * batch * 向量维度embeds = self.embeddings(input)# 输出hidden的大小: 序列长度 * batch * hidden_dimembeds=self.post(embeds)output, hidden = self.lstm(embeds, (h_0, c_0))output = self.linear(output.view(seq_len * batch_size, -1))return output, hidden
增加位置编码后50轮就可以写成这样的诗
春色霁青葱,春流满目葱。孕通千里乐,诗咏九天中。小槛才初谢,前朝事已通。相思频几日,相望似千秋。月上多新月,楼中送晓风。新诗宁不醉,佳节欲何工。岂是多才子,多才在上公。高情同倚古,佳句寄中风。便是江南柳,偏伤楚客翁。有心应有寄,无事欲何穷。独鹤孤飞鹭,孤舟背远峰。风高花叶乱,月落桂花红。万里归应尽,千年事不同。花开看落日,树映映新红。路远因多事,人间亦少同。江流随浪阔,舟楫夕阳中。去国春何晚,归心
江南有游山,迢遰窥天边。中有古松柏,下有青松前。松柏不知暮,云雨何冥冥。苍苍五陵草,秋露松柏声。美人一百尺,始得长相望。玉女真麒麟,金鞍绣双环。香浓豔粉薄,夜罢歌舞多。红颜未烂易,歌舞空自闲。歌罢歌舞楼,歌声怨歌发。玉筯两不伸,泪尽不成丝。何年嫁君意,且莫怨年留。君看君不来,妾泪不可收。妾恨妾不浅,妾颜颜中秋。君非不相见,妾意在此时。莫饮莫饮酒,不如醉如丝。君不见北斗,君亦不如君。妾身未回如雪,颜
花木无人识,长年似不游。忽然无所得,徒话此中游。一夕南山雨,春来百卉流。朝云暮鸟度,夜月空闺愁。一夕梦中游,梦中双鸳鸯。君不见长安万里道,妾心如断猩猩语。一曲哀歌一曲歌,今年不见秋风多。秋风起夜愁人听,此日唯愁愁未还。君今不到潇湘里,君心不断江南雨。春来无事不可闻,君今不见洛阳水。夜宿城南望故乡,北风吹断征南陌。河边故人不可识,且愿同心独相逐。兄弟相留共別离,相如不得一时弃。君不见梁姬酒美女,壮年
朝登大江岭,南望连太白。天子降其雄,天下争何有。苍苍茂陵水,千里无尺石。何人不死死,何处不相识。何处不相识,此別何时得。君不见江南秋草生未销,去留北地不得桥。北邙芳草春草绿,今年五月花开颜。黄莺向尽白日暮,青山青春送君別。君不见当时春草草,君今不见旧人期。长安城中少年少,一去花开花满门。当时相见不相见,日暮逝水无行人。蓬莱辇中谁不识,洛阳城中无白云。君今才子多好才,赠君千里无因缘。可怜白发向前后,
秋天高高高树生,落落落花落落疎,今年花豔成彩凝。零落残花已摧折,穷阴寂历悲何端。秋来独立思归泪,此时一去无消息。落花寂寞秋风清,君今独向空山行。君不见君不见此时君未见,君不见君不见君所为君別在君心不弃上,我亦不为君所作,且愿伶伦之所乎。我不见青阳之君药与之,今年为君之以胡为君,君不见今人不如此。今夕不见二十五,与君相见相逢遇。相劝不语终不语,古人不知今古別。不知此道谁为嗟,君子相逢不相识,对此且为
月之有梁人,胡为不得汝。昨岁三年之,哭之如织女。如今十月还,终日不相识。何处不相逢,夜深心不切。汝身不如死,不得不如此。若为不得所,不如不得较。有病即为妻,今人不知利。汝是无儿人,生者不得识。死者不得罪,汝生无生道。死者不称人,不见今古狱。有何不说人,失事於此矣。死者不得罪,我心无不死。死是无生人,如今死何异?如今流水路,何处不相识。但见此路人,邂逅一相见。今年不得意,何处不相识。古道今如昨,今日
夜梦归太湖,春来多燕山。山中有竹树,果作不能攀。攀崖半成岸,买之如一攀。往往东溪里,白云如我山。下有一竿竹,潺湲无一攀。日暮下溪行,暮宿南山间。风景一何晚,云雨相相随。我心若云中,其人多其间。我有二十年,如今十二年。今年二十六,相劝为君前。我来已三十,世事如浮烟。为我颜色夭,不如老病身。我有一杯酒,请君劝一身。我有二十年,无人有一身。我有一杯酒,我为山中人。我有二十年,无心无上存。生者不耕者,何不
LSTM-pytorch 写诗之位置编码相关推荐
- python程序写诗_pytorch下使用LSTM神经网络写诗实例
在pytorch下,以数万首唐诗为素材,训练双层LSTM神经网络,使其能够以唐诗的方式写诗. 代码结构分为四部分,分别为 1.model.py,定义了双层LSTM模型 2.data.py,定义了从网上 ...
- Pytorch+LSTM+AI自动写诗实战
文章目录 1.数据集和任务定义 2.读取数据集 3.数据预处理 4.数据制作 5.定义网络结构: 6.测试网络 7.可视化 8.总结 1.数据集和任务定义 本次采用的是唐诗数据集,一共有接近60000 ...
- 深度学习框架PyTorch入门与实践:第九章 AI诗人:用RNN写诗
我们先来看一首诗. 深宫有奇物,璞玉冠何有. 度岁忽如何,遐龄复何欲. 学来玉阶上,仰望金闺籍. 习协万壑间,高高万象逼. 这是一首藏头诗,每句诗的第一个字连起来就是"深度学习". ...
- 【PyTorch实战】用RNN写诗
用RNN写诗 1. 背景 1.1 词向量 1.2 RNN 2. CharRNN 3. 用PyTorch实现CharRNN 4. 结果分析 参考资料 1. 背景 自然语言处理(Natural Langu ...
- 深度学习(三)之LSTM写诗
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 干货 | 简简单单,用 LSTM 创造一个写诗机器人
作者 | Carly Stambaugh 来源 | AI 科技评论 人们已经给神经网络找到了越来越多的事情做,比如画画和写诗,微软的小冰都已经出版了一本诗集了.而其实训练一个能写诗的神经网络并不难,A ...
- 相对位置编码,绝对位置编码代码pytorch实现
先看文字版解释相对位置编码解释 visiontransformer中使用到了可学习的绝对位置编码. swintransformer中将相对值位置编码应用到了图像之中,其中的相对位置代码是通用的,在别的 ...
- PaperWeekly 第二十三期 --- 机器写诗
引言 什么是艺术? 机器的作品能否叫艺术? 机器能否取代艺术家? 这些问题,相信不同的人,会有不同的答案.很多人认为机器生成的作品只是简单的模仿人类,没有创造性可言,但是人类艺术家,不也是从模仿和学习 ...
- 相对位置编码与绝对位置编码
1 绝对位置编码 在输入的第k个向量xk中加入位置向量pk变为xk+pk,其中pk只依赖于位置编号k. 训练式 将位置编码当作可训练参数,比如最大长度为512,编码维度为768,那么就初始化一个512 ...
最新文章
- 教你如何编写第一个爬虫
- C 类INI文本,可以添加注释(初步实现,可以添加更加复杂的通用化设计)
- 什么时候使用Java的@Override注释,为什么?
- maven 多模块项目关系
- 一个老王开枪案例带你一步一步领略程序开发的魅力
- stack.pop()方法_C.示例中的Stack.Pop()方法
- php大写数字转换,PHP把数字转成人民币大写的函数分享
- Linux下的文件共享全攻略系列之三:主流FTP服务器Wu-ftpd入门指南
- 网站能使用微软雅黑字体吗?是否会构成侵权?微软雅黑有版本吗?
- 音频开发之——pulseaudio
- Kafka - which is larger than the maximum request size you have configured with the max.request
- 手把手教你如何连接到宝塔面板创建的FTP空间
- 显示本q不用了 加新q服务器,魔兽TBC设计师访谈:前夕版本开放新种族 持续关注玩家反馈...
- 学习推荐《零起点Python大数据与量化交易》中文PDF+源代码
- mysql字段的区分度_详解MySQL索引长度和区分度之间的平衡,值得收藏
- 链表问题归纳总结--C和C++
- video标签设计vue视频播放器组件
- 鸿蒙2000plus,天玑2000plus处理器相当于骁龙的多少
- 看看你在古代是什么学历?(附真题)
- Unity3D性能优化 之 内存优化篇
热门文章
- 关于第十五届全国大学生智能车竞赛 STC 单片机
- 高频信号对LM386直流偏置的影响
- 老师与学生打赌,谁会赢?
- 天软考c语言,软考中C语言试题问答精选
- php 位运算与权限,PHP巧妙利用位运算实现网站权限管理的方法
- android heic图片,如何在Windows / MacOS / Android上打開HEIC照片
- linux zip指定目录解压,Linux zip解压/压缩并指定目录
- inet_ntop php,inet_ntop()
- java 投票ip限制_java 限定网站在指定IP段访问
- apache httpclient 工具类_Java教程分享使用HttpClient抓取页面内容