【AI作诗】主流平台介绍+自主搭建
诗歌总是属于文人的浪漫,但随着技术的发展,理科生文艺起来,也就没文科生什么事了(开玩笑的)。通过本篇文章,笔者将给大家介绍主流的AI诗歌创作平台及如何自己搭建,以供大家学习参考。
技术的进步是为了更好的服务原有的创作,而非取代,毕竟AI诗歌是没有灵魂的。
一、主流AI作诗平台介绍
1、诗三百·人工智能诗歌写作平台
2、九歌·人工智能诗歌写作系统
平台与诗三百比较类似,由清华大学自然语言处理与社会人文计算实验室研发。
3、华为乐府·人工智能作诗小程序
华为乐府AI是首个基于GPT打造的作诗系统,而且与谷歌提出的BERT息息相关。华为乐府本省作诗质量较高,但需付费。
4、微软小冰·AI现代诗歌创作系统
二、自主搭建
这里使用的项目地址为https://github.com/lucasjinreal/tensorflow_poems,基于tensorflow开发的AI作诗项目。现在笔者就来介绍怎样自主搭建属于自己的AI作诗程序。
1、安装配置Anaconda
进入官网下载安装包并安装,然后将Anaconda配置到环境变量中。
克隆项目后,在项目根目录新建文件environment.yml
和空文件requirements.txt
,并在environment.yml
中填入如下内容:
name: poemai
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- defaults
dependencies:- pip==21.2.4- python==3.10.6
打开命令行,依次通过如下命令创建Python运行虚拟环境。
conda env create
E:\workspace\02_Python\002_AI作诗>conda info --envs# conda environments:#
base * D:\anaconda3
novelai D:\anaconda3\envs\novelai
poemai D:\anaconda3\envs\poemaiE:\workspace\02_Python\002_AI作诗>conda activate poemai
但需要注意的是,此时安装的tensorflow
已经是第2版了,而项目是基于tensorflow1.10 api
开发的,需修改:
import tensorflow as tf =>
import tensorflow.compat.v1 as tf
否则会出现如下错误:
(poemai) E:\workspace\02_Python\002_AI作诗>python train.py
Traceback (most recent call last):File "E:\workspace\02_Python\002_AI作诗\train.py", line 24, in <module>tf.app.flags.DEFINE_integer('batch_size', 64, 'batch size.')
AttributeError: module 'tensorflow' has no attribute 'app'
2、模型训练及运行
环境搭建完成后,先执行python train.py
命令训练模型。
模型训练完成后,执行python compose_poem.py
开始诗歌创作:
看着像模像样,却终不能与前面提到的主流平台相论,诗的意蕴自不必说,更有时会放飞自我。
3、可能遇到的问题
3.1 tf.placeholder() is not compatible with eager execution
具体报错内容如下:
(poemai) E:\workspace\02_Python\002_AI作诗>python train.py
Traceback (most recent call last):File "E:\workspace\02_Python\002_AI作诗\train.py", line 87, in <module>tf.app.run()File "D:\anaconda3\envs\poemai\lib\site-packages\tensorflow\python\platform\app.py", line 36, in run_run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)File "D:\anaconda3\envs\poemai\lib\site-packages\absl\app.py", line 308, in run_run_main(main, args)File "D:\anaconda3\envs\poemai\lib\site-packages\absl\app.py", line 254, in _run_mainsys.exit(main(argv))File "E:\workspace\02_Python\002_AI作诗\train.py", line 83, in mainrun_training()File "E:\workspace\02_Python\002_AI作诗\train.py", line 42, in run_traininginput_data = tf.placeholder(tf.int32, [FLAGS.batch_size, None])File "D:\anaconda3\envs\poemai\lib\site-packages\tensorflow\python\ops\array_ops.py", line 3340, in placeholderraise RuntimeError("tf.placeholder() is not compatible with "
RuntimeError: tf.placeholder() is not compatible with eager execution.
原因分析:Tensorflow 2.0
会默认使用 Eager Execution
这个功能,具体代码如下。这段代码会直接导致与tf.placeholder()
这段代码冲突。
tf.compat.v1.enable_eager_execution()
解决方案:在tf.placeholder()
前面输入以下代码,使得功能先不生效。
tf.compat.v1.disable_eager_execution()
3.2 module ‘tensorflow’ has no attribute ‘contrib’
具体报错内容如下:
(poemai) E:\workspace\02_Python\002_AI作诗>python train.py
Traceback (most recent call last):File "E:\workspace\02_Python\002_AI作诗\train.py", line 88, in <module>tf.app.run()File "D:\anaconda3\envs\poemai\lib\site-packages\tensorflow\python\platform\app.py", line 36, in run_run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)File "D:\anaconda3\envs\poemai\lib\site-packages\absl\app.py", line 308, in run_run_main(main, args)File "D:\anaconda3\envs\poemai\lib\site-packages\absl\app.py", line 254, in _run_mainsys.exit(main(argv))File "E:\workspace\02_Python\002_AI作诗\train.py", line 84, in mainrun_training()File "E:\workspace\02_Python\002_AI作诗\train.py", line 46, in run_trainingend_points = rnn_model(model='lstm', input_data=input_data, output_data=output_targets, vocab_size=len(File "E:\workspace\02_Python\002_AI作诗\poems\model.py", line 44, in rnn_modelcell_fun = tf.contrib.rnn.BasicLSTMCell
AttributeError: module 'tensorflow' has no attribute 'contrib'
原因分析:由于tensorflow2.x
废弃了很多tensorflow1.x API
接口,使用tensorflow2.x
版本调用tensorflow1.x
函数的代码时,常常会出现module ‘tensorflow’ has no attribute ‘contrib’
这样的问题。如笔者的错误,因为tensorflow2.x
版本已经没有contrib
库,可以尝试下面的方法解决。
首先用placeholder
的方法,先修改import tensorflow as tf
改成
import tensorflow.compat.v1 as tf
tf.compat.v1.disable_eager_execution()
BasicLSTMCell
处理方法,DropoutWrapper
和MultiRNNCell
同理:
cell = tf.contrib.rnn.BasicLSTMCell(num_units=units, forget_bias=0.9)
修改为:
cell = tf.nn.rnn_cell.BasicLSTMCell(num_units=units,forget_bias=0.9)
将contrib.rnn
改成 nn.rnn_cell
,如果使用了static_rnn
类似的,就把contrib.rnn
改成nn
即可。
outputs, _ = tf.contrib.rnn.static_rnn(stacked_lstm_cells, inputs, dtype=tf.float32)
修改为:
outputs, _ = tf.nn.static_rnn(stacked_lstm_cells, inputs, dtype=tf.float32)
【AI作诗】主流平台介绍+自主搭建相关推荐
- AI作诗:诗三百·人工智能诗歌写作平台
挺有意思的一个AI作诗网站,之前也用过几个作诗网站,但是感觉这个作出来的更有内味. 对于已经有人生成过的词句,结果返回的很快,对于生词,可能需要多等一会. 刚开始测试的时候还挺快,现在生成的有点慢了, ...
- AI作诗:深度学习应用演示平台
挺有意思的一个AI作诗网站,之前也用过几个作诗网站,但是感觉这个作出来的更有内味. 对于已经有人生成过的词句,结果返回的很快,对于生词,可能需要多等一会. 刚开始测试的时候还挺快,现在生成的有点慢了, ...
- 【FFH】AI作诗之httpRequest实战
[FFH]AI作诗之httpRequest实战 前言 Demo展示 http接口常识补充 内容类型(Content-Type) 响应状态码(ResponseCode) 代码实现 ①申请网络权限 ② 导 ...
- 不一样的七夕礼:最美情话+AI 作诗
作者 | 月小水长 来源 | 月小水长(ID:inspurer) 七夕到了,程序猿同志们都在想怎么送女朋友礼物,送包包?太俗气!送口红?没有新意! 没有点子的同志们不妨看看这篇,满满的干货:LDA 主 ...
- AI作诗,模仿周杰伦创作歌词-实战项目
点击上方"码农的后花园",选择"星标" 公众号 精选文章,第一时间送达 很久以来,我们都想让机器自己创作诗歌,当无数作家.编辑还没有抬起笔时,AI已经完成了数千 ...
- semiplannar 什么是_图像识别VPU——易用的嵌入式AI支持深度学习平台介绍
公司玩了大半年的嵌入式AI平台,现在产品进入量产模式,也接触了很多嵌入式方案,有了一些心得体会,本人不才,在这里介绍一下一款简单易用的嵌入式AI方案--Movidius Myriad 2 VPU(MA ...
- 图像识别VPU——易用的嵌入式AI支持深度学习平台介绍
公司玩了大半年的嵌入式AI平台,现在产品进入量产模式,也接触了很多嵌入式方案,有了一些心得体会,本人不才,在这里介绍一下一款简单易用的嵌入式AI方案--Movidius Myriad 2 VPU(MA ...
- LIBGDX游戏引擎平台介绍与搭建
LIBGDX官方下载地址:http://libgdx.badlogicgames.com/ 一.LIBGDX简介 根据官网的介绍,LIBGDX是一个为所有支持的平台提供一个统一的API的java游戏框 ...
- KVM虚拟化平台介绍及搭建
文章目录 一:虚拟化技术 1.1:虚拟化技术发展 1.2:虚拟化类型 1.3:虚拟化的特性: 优势 劣势 案例: 二:KVM: 2.1.KVM 原理简介 2.2.KVM架构及原理 2.3.KVM原理 ...
最新文章
- 吴恩达老师深度学习视频课笔记:单隐含层神经网络公式推导及C++实现(二分类)
- android、ios、php之间AES加密解密
- ALV中动态内表+行转化为列
- POJ 放苹果问题(递归)
- JZOJ 5474. 【NOIP2017提高组正式赛】时间复杂度
- mysql登录错误1045修改工具_mysql登录1045错误时 修改登录密码
- 2014年最受欢迎WEB前端UI框架
- C语言_选择结构的程序设计
- 【kafka】kafka rebalance generation
- C#相关时间DateTime格式化
- 顶级SaaS公司的共同基因都有什么?
- linux maven 添加项目,Eclipse中Maven项目添加jar包
- 《善用佳软:高效能人士的软件应用之道》一第2章 办公软件:核心应用,实用技巧...
- SEO优化技术的简介
- 路由及路由器工作原理深入解析3:路由与端口
- 美丽的回测你定量算过拟概
- 南怀瑾老师:人最大的毛病就是不敢承认“心即是佛、心即是道
- Rserve的R语言客户端RSclient
- python关于re模块(正则表达式)
- SQL Server 2012 导出数据及分离MDF、LDF
热门文章
- Mr. Cappuccino的第19杯咖啡——金三银四面试题之JVM性能调优篇
- 2020圣诞年终总结 | 普元数字中台文章合集
- Python 520告白特技:隐藏在聊天记录里的珍贵礼物
- 学习性测试(Learning Tests)初探
- MATLAB 自学方法
- 【sublime】 中文文件名变成框框问题
- Java代码常用功能实现总结(二)
- android 8.0 支付宝,支付宝8.0版本入局NFC助力智慧交通
- Golang 侧数据库连接池原理和参数调优
- android 手机九宫格解锁实验报告,Android数独游戏实验分析报告.pdf