源码和模型地址
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 写诗之位置编码相关推荐

  1. python程序写诗_pytorch下使用LSTM神经网络写诗实例

    在pytorch下,以数万首唐诗为素材,训练双层LSTM神经网络,使其能够以唐诗的方式写诗. 代码结构分为四部分,分别为 1.model.py,定义了双层LSTM模型 2.data.py,定义了从网上 ...

  2. Pytorch+LSTM+AI自动写诗实战

    文章目录 1.数据集和任务定义 2.读取数据集 3.数据预处理 4.数据制作 5.定义网络结构: 6.测试网络 7.可视化 8.总结 1.数据集和任务定义 本次采用的是唐诗数据集,一共有接近60000 ...

  3. 深度学习框架PyTorch入门与实践:第九章 AI诗人:用RNN写诗

    我们先来看一首诗. 深宫有奇物,璞玉冠何有. 度岁忽如何,遐龄复何欲. 学来玉阶上,仰望金闺籍. 习协万壑间,高高万象逼. 这是一首藏头诗,每句诗的第一个字连起来就是"深度学习". ...

  4. 【PyTorch实战】用RNN写诗

    用RNN写诗 1. 背景 1.1 词向量 1.2 RNN 2. CharRNN 3. 用PyTorch实现CharRNN 4. 结果分析 参考资料 1. 背景 自然语言处理(Natural Langu ...

  5. 深度学习(三)之LSTM写诗

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  6. 干货 | 简简单单,用 LSTM 创造一个写诗机器人

    作者 | Carly Stambaugh 来源 | AI 科技评论 人们已经给神经网络找到了越来越多的事情做,比如画画和写诗,微软的小冰都已经出版了一本诗集了.而其实训练一个能写诗的神经网络并不难,A ...

  7. 相对位置编码,绝对位置编码代码pytorch实现

    先看文字版解释相对位置编码解释 visiontransformer中使用到了可学习的绝对位置编码. swintransformer中将相对值位置编码应用到了图像之中,其中的相对位置代码是通用的,在别的 ...

  8. PaperWeekly 第二十三期 --- 机器写诗

    引言 什么是艺术? 机器的作品能否叫艺术? 机器能否取代艺术家? 这些问题,相信不同的人,会有不同的答案.很多人认为机器生成的作品只是简单的模仿人类,没有创造性可言,但是人类艺术家,不也是从模仿和学习 ...

  9. 相对位置编码与绝对位置编码

    1 绝对位置编码 在输入的第k个向量xk中加入位置向量pk变为xk+pk,其中pk只依赖于位置编号k. 训练式 将位置编码当作可训练参数,比如最大长度为512,编码维度为768,那么就初始化一个512 ...

最新文章

  1. 教你如何编写第一个爬虫
  2. C 类INI文本,可以添加注释(初步实现,可以添加更加复杂的通用化设计)
  3. 什么时候使用Java的@Override注释,为什么?
  4. maven 多模块项目关系
  5. 一个老王开枪案例带你一步一步领略程序开发的魅力
  6. stack.pop()方法_C.示例中的Stack.Pop()方法
  7. php大写数字转换,PHP把数字转成人民币大写的函数分享
  8. Linux下的文件共享全攻略系列之三:主流FTP服务器Wu-ftpd入门指南
  9. 网站能使用微软雅黑字体吗?是否会构成侵权?微软雅黑有版本吗?
  10. 音频开发之——pulseaudio
  11. Kafka - which is larger than the maximum request size you have configured with the max.request
  12. 手把手教你如何连接到宝塔面板创建的FTP空间
  13. 显示本q不用了 加新q服务器,魔兽TBC设计师访谈:前夕版本开放新种族 持续关注玩家反馈...
  14. 学习推荐《零起点Python大数据与量化交易》中文PDF+源代码
  15. mysql字段的区分度_详解MySQL索引长度和区分度之间的平衡,值得收藏
  16. 链表问题归纳总结--C和C++
  17. video标签设计vue视频播放器组件
  18. 鸿蒙2000plus,天玑2000plus处理器相当于骁龙的多少
  19. 看看你在古代是什么学历?(附真题)
  20. Unity3D性能优化 之 内存优化篇

热门文章

  1. 关于第十五届全国大学生智能车竞赛 STC 单片机
  2. 高频信号对LM386直流偏置的影响
  3. 老师与学生打赌,谁会赢?
  4. 天软考c语言,软考中C语言试题问答精选
  5. php 位运算与权限,PHP巧妙利用位运算实现网站权限管理的方法
  6. android heic图片,如何在Windows / MacOS / Android上打開HEIC照片
  7. linux zip指定目录解压,Linux zip解压/压缩并指定目录
  8. inet_ntop php,inet_ntop()
  9. java 投票ip限制_java 限定网站在指定IP段访问
  10. apache httpclient 工具类_Java教程分享使用HttpClient抓取页面内容