pytorch之诗词生成6--eval

先上代码:


import tensorflow as tf
from dataset import tokenizer
import settings
import utils# 加载训练好的模型
model = tf.keras.models.load_model(r"E:\best_model.h5")
# 随机生成一首诗
print(utils.generate_random_poetry(tokenizer, model))
# 给出部分信息的情况下,随机生成剩余部分
print(utils.generate_random_poetry(tokenizer, model, s='深山夕照深秋雨'))
# 生成藏头诗
print(utils.generate_acrostic(tokenizer, model, head='深山夕照深秋雨'))

我们需要做的工作已经做完了,模型也已经训练好了,剩下的就是我们把我们的模型放到实际应用之中去了。

先看:

model = tf.keras.models.load_model(r"E:\best_model.h5")

这段代码使用了tensorflow中的tf.keras.models.load_model函数,加载一个预训练好的模型,这种加载预训练模型的例子很常见,在我们之前提到的风格迁移项目中,我们就加载预训练模型对我们的图片特征进行提取。

  •  tf.keras.models是tensorflow中用于构建和训练神经网络模型的模块。
  • load_model是tf.keras.models模块中的一个函数,用于从磁盘中加载保存好的预训练模型。我们的参数是一个模型文件或文件名,使用r前缀表示字符串是一个原始字符串,可以包含反斜杠\而无需进行转义。

这段代码的作用是将预训练模型加载到变量model中,以便后续使用该模型进行古诗生成或其他任务,加载的模型可以是之前使用的TensorFlow训练得到的模型,也可以是由其他方法训练得到的模型,加载模型之后,可以使用model变量调用模型的方法和属性。(其余方法如我们在图像识别项目中使用的save_model方法,使用save_model.save函数来保存模型参数,使用save_model.load函数来加载模型参数)。

接下来就是进行古诗的生成了:

print(utils.generate_random_poetry(tokenizer, model))

只是传递分词器和我们的模型表示只进行随机的诗词生成。

print(utils.generate_random_poetry(tokenizer, model, s='深山夕照深秋雨'))

除上述传递的参数之外,额外传递s表示传递第一句,会跟着第一句往后进行诗词的生成,在这里,由于我们使用的是循环神经网络(RNN) ,所以我们后面生成的诗词与我们提供的第一句是有很强的关联性的。

print(utils.generate_acrostic(tokenizer, model, head='深山夕照深秋雨'))

最后我们传递的参数改成藏头诗,我们传递的head将被分成一个个词,并对每个词进行相应的生成,然后将得到的结果组合在一起,形成完整的诗词,当然,我们对每个词进行生成的时候不止简单的考虑到我们head所提供的第一个词,而是考虑到前面已经生成的词。这样使全文就有一定的关联性。

最后我们来演示我们的模型效果:

我们给定的第一句是“深山夕照深秋雨”,包括藏头也是“深山夕照深秋雨”。

总体来看效果还是不错的,我们继续生成一首:

有些同学可能会发愁找不到相关的诗词资源,在这里我已经将相关资源传上去了。分别是进行诗词训练的数据集,便于同学们更加直观的感受训练过程,理解数据对深度学习的重要作用,还有预训练权重,可以直接用于模型。

至于训练数据,请查看我的文章http://t.csdnimg.cn/mF4lm。

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

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

相关文章

k8s admin 用户生成token

k8s 版本 1.28 创建一个admin的命名空间 admin-namespce.yaml kind: Namespace apiVersion: v1 metadata: name: admin labels: name: admin 部署进k8s kubectl apply -f admin-namespce.yaml 查看k8s namespace 的列表 kubectl get namespace查看当前生效的…

WRF模型教程(ububtu系统)-WPS(WRF Pre-Processing System)概述

一、WPS简介 WRF 预处理系统 (WRF Pre-Processing System,WPS) ,集成了基于Fortran和C编写的程序,这些程序主要用于处理输入到real.exe的数据。WPS主要有三个程序和一些辅助程序。 二、各程序介绍 主要的程序为geogrid.exe、ungrib.exe、met…

paddle ocr识别文字

paddle使用 # pip install paddlepaddle2.5.2 -i https://mirror.baidu.com/pypi/simple # pip install paddleocr2.7.0.3 -i https://mirror.baidu.com/pypi/simplefrom paddleocr import PaddleOCR from PIL import Image import numpy as npimage Image.open(./2.png) ocr…

Spring Boot Actuator介绍

大家在yaml中经常见到的这个配置 management: endpoints: web: exposure: #该配置线上需要去掉,会有未授权访问漏洞 include: "*" 他就是Actuator! 一、什么是 Actuator Spring Boot Actuator 模块提供了生产级别…

el-table按钮获取当前行元素

el-table按钮获取当前行元素 vue2 <el-table-column label"操作" width"240px"><template slot-scope"scope"><el-button size"mini" click"toItem(scope.row)">用户详情</el-button><el-butto…

【Unity】详细介绍

Unity讲解 Unity是一个广泛使用的游戏开发平台&#xff0c;由Unity Technologies开发。它提供开发者一个强大的集成环境来创建2D和3D游戏及交互式内容。Unity自身包含一个图形引擎、物理引擎、声音处理系统、动作捕捉系统、网络系统等多个模块&#xff0c;使得开发者能够实现丰…

C++高级面试题:什么是 C++ 中的多态指针(Polymorphic Pointers)?

什么是 C 中的多态指针&#xff08;Polymorphic Pointers&#xff09;&#xff1f; 在 C 中&#xff0c;多态指针&#xff08;Polymorphic Pointers&#xff09;通常指向基类&#xff08;Base Class&#xff09;的指针&#xff0c;但它可以指向派生类&#xff08;Derived Clas…

Linux------JAVA项目发布

启动jar TODO: 直接指定jar包外的yml 用户导出配置文件 jar xf wisdom-classroom.jar BOOT-INF/classes/application.yml jar xf wisdom-classroom.jar BOOT-INF/classes/application-druid.yml用于导入配置文件 jar uf wisdom-classroom.jar BOOT-INF/classes/application.y…

微信小程序--分享如何与ibeacon蓝牙信标建立联系

ibeacon蓝牙设备 iBeacon是苹果公司2013年9月发布的移动设备用OS&#xff08;iOS7&#xff09;上配备的新功能。其工作方式是&#xff0c;配备有 低功耗蓝牙&#xff08;BLE&#xff09;通信功能的设备使用BLE技术向周围发送自己特有的ID&#xff0c;接收到该ID的应用软件会根…

Laravel Class ‘Facade\Ignition\IgnitionServiceProvider‘ not found 解决

Laravel Class Facade\Ignition\IgnitionServiceProvider not found 问题解决 问题 在使用laravel 更新本地依赖环境时&#xff0c;出现报错&#xff0c;如下&#xff1a; 解决 这时候需要更新本地的composer&#xff0c;然后在更新本地依赖环境。 命令如下&#xff1a; co…

19113133262(微信同号)【征稿进行时|见刊、检索快速稳定】2024年区块链、物联网与复合材料与国际学术会议 (ICBITC 2024)

【征稿进行时|见刊、检索快速稳定】2024年区块链、物联网与复合材料与国际学术会议 (ICBITC 2024) 大会主题: (主题包括但不限于, 更多主题请咨询会务组苏老师) 区块链&#xff1a; 区块链技术和系统 分布式一致性算法和协议 块链性能 信息储存系统 区块链可扩展性 区块…

How to manage Python environment based on virtualenv in Ubuntu 22.04

How to manage Python environment based on virtualenv in Ubuntu 安装使用创建环境激活环境安装软件包退出环境移除环境 安装 pip3 install virtualenv使用 创建环境 lwkqwfys:~$ mkdir ~/project/harbin lwkqwfys:~$ cd ~/project/harbin lwkqwfys:~/project/harbin$ vir…

css背景从上到下颜色渐变、css背景从左到右颜色渐变、 css框线展示外阴影、css框线展示内阴影

1. css背景从上到下颜色渐变 body {background: linear-gradient(to bottom, #ff0000, #ffff00); /* 这里的#ff0000表示红色&#xff0c;#ffff00表示黄色 */ }2. css背景从左到右颜色渐变 要实现CSS背景从左到右的颜色渐变&#xff0c;可以使用linear-gradient函数。以下是一…

微信小程序将高德地图转为腾讯地图的自行车路线规划

微信小程序后台首页开发设置 相关文档 腾讯后台 微信小程序接入JDK JDK腾讯地图文档 腾讯路线规划文档 核心代码 <map id"myMap" ref"myMap" style"width: 100%; height: calc(100vh - 80px)":latitude"latitude" :scale&qu…

系统架构设计师笔记第36期:中间层架构设计

在现代软件开发领域,随着业务复杂度和用户需求的增长,传统的两层架构逐渐暴露出其局限性,如难以处理高并发场景、业务逻辑分散且不易维护等问题。因此,引入中间层(也称为服务层或业务逻辑层)架构成为了提升系统性能、保证数据安全以及促进应用服务高效、灵活和可扩展的重…

java笔记+理论复习大全

java复习3 1 记事本程序2 八中数据类型函数结构面向对象对象类构造方法继承接口多态重写方法: 异常多线程集合框架文件操作其他待续、更新中 工程名 包名等都命名 9个题 1 记事本程序 保存为.java文件 查看 Hello.java 运行cmd javac Hello.java java Hello体现 java程序特点…

gitlab CI/CD的gitlab-runner构建项目(go web项目实战体验)

runner安装 runner时gitlab CI/CD得以实现的基础。 gitlab-runner安装 centos安装 # Replace ${arch} with any of the supported architectures, e.g. amd64, arm, arm64 # A full list of architectures can be found here https://gitlab-runner-downloads.s3.amazonaws…

Vue项目中使用ECharts构建交互式中国地图的详细指南

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

ASP.NET-Server.UrlEncode

目录 背景: Server.UrlEncode作用: 1.URL 编码&#xff1a; 2.避免冲突&#xff1a; 3.安全性&#xff1a; 4.规范化&#xff1a; 实例说明: 不使用Server.UrlEncode 使用Server.UrlEncode 总结: 背景: Server.UrlEncode方法在ASP.NET中主要功能是对URL中的参数进行编…

MapReduce超详解

简介 概述 MapReduce是Hadoop提供的一套用于进行分布式计算的模型,本身是Doug Cutting根据Google的<MapReduce: Simplified Data Processing on Large Clusters>仿照实现的。 MapReduce由两个阶段组成:Map(映射)阶段和Reduce(规约)阶段,用户只需要实现map以及reduc…