EssayKiller_V2项目学习
1.EssayKiller_V2是什么
EssayKiller是基于OCR、NLP领域的最新模型所构建的生成式文本创作AI框架,目前第一版finetune模型针对高考作文(主要是议论文),可以有效生成符合人类认知的文章,多数文章经过测试可以达到正常高中生及格作文水平。
项目网址github:EssayKiller_V2项目
项目网址gitee:EssayKiller_V2项目
2.研究EssayKiller_V2的动机
源于B站的一个视频:爆肝100天,我开发了一个会写作文的人工智能
1.供学习和研究
3.如何跑通EssayKiller_V2
3.1 深度学习环境配置
python==3.7.5(只要大于3.6应该都可以)
pandas==0.24.2
regex==2019.4.14
h5py==2.9.0
numpy==1.16.2
tensorboard==1.13.1
tensorflow-gpu==1.13.1
tqdm==4.31.1
requests==2.22.0
protobuf==3.19.0
OpenCV 3.4.2
CUDA >= 10.0
CuDNN >= 7.6.0
3.2 安装python
bing搜索python,进入官网,找到下载按钮,找到这样子的页面,往下滑,找到自己想要安装的版本,点击Download
根据操作系统的版本和位数选择相应的安装版本
3.3 安装conda
使用tuna:bing搜索tuna,
conda命令的使用
conda create -n zuowen1 #创建一个名字为zuowen1的conda虚拟环境
3.4 安装cuda
网址:CUDA Toolkit
根据nvidia-smi.exe中自家显卡对应的cuda最大版本号,根据实际情况进行相应版本的下载。我的电脑显示了我的显卡最高可以支持到cuda 12.0版本。根据项目要求,为了追求稳定性,最终选择了10版本
3.5 安装cudnn
二级目录
4.遇到的坑和解决方法
坑1:cuda toolkit下载速度慢
解决方法1
1.打开ping检测工具:ping检测工具1
2.输入下载速度慢的网址,点击ping检测
3.找到响应时间最快的监测点,复制对应的响应IP
4.打开cmd 使用ping命令,观察响应时间
ping 152.199.20.126
5.打开hosts文件,使用vscode修改hosts,将想要的国内ip地址加入到hosts中并保存
一般host所在的目录为:C:\Windows\System32\drivers\etc
坑2:关于/和\
问题描述:在运行demo代码时,发现了一个奇怪的现象:程序跑着跑着就自动退出了,既没有警告,也没有报错,就这样悄无声息的,轻轻的离开了,好像什么事情都没发生一样。敏锐的我赶紧打开了调试工具,通过逐个设置断点和逐行调试,终于将错误定位到了第191行
# 191行
saver.restore(sess, args.ckpt_fn)
但是定位归定位,就算找到了错误位置,并且通过进入内部函数找到了方法的具体的实现,但基础不扎实的我在20221125那天晚上想了半天都没有想明白为什么,设置断点,单行调试,最终将问题定位到了from_json_file
方法中的具体实现(不懂为什么,20221127再修改一次,又没问题了,晕,反正错误是一样的,具体细节还得看原来hub主的代码)
@classmethod
def from_json_file(cls, json_file):
"""Constructs a `NewsConfig` from a json file of parameters."""
with tf.io.gfile.GFile(json_file, "r") as reader:
text = reader.read() # 执行完该语句,程序自动退出
return cls.from_dict(json.loads(text))
原因分析:主要还是涉及不同操作系统文件路径的问题
# Windows系统中,使用的是反斜杠
D:\ly\EssayKiller_V2-master\LanguageNetwork\GPT2\scripts\demo.py
# linux系统中,使用的是斜杠
/home/EssayKiller_V2-master/LanguageNetwork/GPT2/scripts/demo.py
parser.add_argument(
'-config_fn',
dest='config_fn',
default='D:\ly\EssayKiller_V2-master\LanguageNetwork\GPT2\configs\mega.json',
type=str,
help='Configuration JSON for the model',
)
parser.add_argument(
'-ckpt_fn',
dest='ckpt_fn',
default='D:\ly\EssayKiller_V2-master\LanguageNetwork\GPT2\finetune\trained_models\model.ckpt-280000', # 需要将\改为\\
type=str,
help='checkpoint file for the model',
)
# 通过调试我们可以知道,程序将\f识别为了x0c,导致程序退出
'D:\\ly\\EssayKiller_V2-master\\LanguageNetwork\\GPT2\x0cinetune\trained_models\\model.ckpt-280000'
解决方案
1.将\改为/或者将\改为\