本项目由一个React项目和一个Python3项目组成。Python项目用于语料库的预处理、训练以及插图的预处理,并在生成参数文件和插图素材后传递给React项目进行打包。
如果需要自动生成插图的功能,在配置项目前需手动下载ILSVRC2012数据集(推荐):
- 下载ILSVRC2012_img_val.tar(官方地址)
- 将ILSVRC2012_img_val.tar中的所有内容解压至
python/img_datasets/ILSVRC2012_img_val
路径下 - 下载标签文件包caffe_ilsvrc12.tar.gz(官方地址)
- 将caffe_ilsvrc12.tar.gz中的所有内容解压至
python/img_datasets/caffe_ilsvrc12
路径下
最后,在项目根目录下执行以下命令:
npm install
npm run init
第一行会安装React项目的相关依赖,第二行则会自动安装Python项目的相关依赖并执行初始化脚本。
训练长诗所用的语料库位于python/text_datasets
目录下。可以在这个目录下自行放置任意个.txt
文件,在训练时都会自动加载。
超参数配置文件位于src/params/hyperParams.json
文件中,包含了θ、α、β三个超参数的声明(关于这些参数的介绍可见这里)。
语料库和超参数将直接影响长诗生成效果。
在项目的根目录下可以选择性地运行以下命令:
在开发模式下运行网页。运行脚本后打开 http://localhost:3000 即可在浏览器中预览。
构建网页并生成到docs
文件夹下,用于部署在GitHub Pages。
根据python/text_datasets
目录下的语料库,重新训练马尔可夫模型的参数。这个参数是临时的,并不将更改传递到React项目中。
训练好模型参数后可以运行此命令在控制台中预览长诗生成效果,默认一次输出一段50行的长诗。可以通过更改src/params/hyperParams.json
文件来微调超参数并预览效果。
更新所有插图:重新根据语料库的词典来随机挑选插图、并将插图进行预处理(通过DenseNet前向传播获取CAM热图)、将所有插图素材导入到React项目中。
运行全部Python脚本:重新训练马尔可夫模型、将模型参数传递到React项目中(更新到网页上)、更新所有插图、将所有插图素材导入到React项目中。
Have fun!