Chapter2.Stanford的图片描述生成实例Deep Visual-Semantic Alignments for Generating Image Descriptions调整及运行
(参考了http://www.krrrrr.xyz/3.0/window_o.html#/post/42和http://blog.csdn.net/huangxiongbiao/article/details/41820371)
前提条件:已安装好Chapter1中要求的各种包并配置好了环境。
在neuraltalk-master文件夹下的Readme.md说明文件可以指导整个流程,如果用到相应子文件夹,则看子文件夹下的Readme.md文件,这些说明对完整地跑通这个实例有很大的帮助。
按Readme.md说明文件的步骤进行。Getting started。
①(Get the code.)
从GitHub上获取这个实例代码,并安装Python及相应支持包。
②(Get the data.)
获取数据集文件。从GitHub上下载到的实例压缩包中不包含数据集。需要从http://cs.stanford.edu/people/karpathy/deepimagesent/上下载特征文件vgg_feats.mat和json文件放到data/
文件夹下。如下图:
下载包里的内容(以flickr8k为例)。
解压后放到data文件夹下
另外,如果需要后面步骤中能看到图片与描述相匹配显示的过程,需要下载数据集的原图片集,均以flickr8k为例。
进入网站https://illinois.edu/fb/sec/1713398,填写申请下载的相关信息,等待它给你回邮件。在收到邮件之后进入邮件中的网站下载flickr8k图片集。下下来的是Flickr8k_Dataset.zip,大约一个G的大小。还可以下载图片的相应描述文件Flickr8k_text.zip,2兆大小。图片集解压后放到..\data\flickr8k\imgs中待用。
数据放好后的整体效果:
③(Train the model.)
运行训练模型。打开cmd,先cd到你的neuraltalk-master文件夹的目录。如下所示:
cd F:\LeStudy\ML\neuraltalk-master
F:
两个命令后就切到了neuraltalk-master目录下。
接着输入python driver.py命令,开始运行训练模型,如下所示:
注意,由于我使用的是CPU模式运行的,速度超级慢,算了一下,跑完15000个batch要等一天多。如下图情况。
如果你有耐心,你能在你的cv文件夹下看到训练特征点文件(.p),在status文件夹下看到.json文件。
毕竟我用的笔记本,我没有让它跑完。还好Stanford给我们提供了已经训练好的一个特征点文件flickr8k_cnn_lstm_v1.p,进入http://cs.stanford.edu/people/karpathy/neuraltalk/下载吧,下好后丢到cv文件夹下。
④(Monitor the training.)
监测训练过程,这是一个动态显示的过程。需要第③步跑完全程才能实现。第③步完成后,cv文件夹下会有很多.p文件,status文件夹下会有很多.json文件。需要说明一下的是,原monitorcv.html文件中的部分内容需要做一定修改才能正常显示出你要的结果。因为你运行后生成的.json文件命名和html代码中写的不同,不加修改直接运行后会提示找不到相应json文件。
另开一个cmd窗口,用Python语句运行一个本地网页服务器,在cd到neuraltalk-master目录后输入命令如:python -m SimpleHTTPServer 8123,然后打开浏览器,进入http://localhost:8123/monitorcv.html,查看整个动态训练过程吧。
其实Stanford这个实例主页上也有一个动态训练过程观察的网页,可以去看看。另外提示:Python中运行本地服务器后可以按Ctrl+Break关闭server。不过你要是没改html运行了,然后再改.html内容之后再运行,目前看来需要换个端口,即将8123换成其他的。
⑤(Evaluate model checkpoints.)
评估特征点(检查点)。在cmd中cd到neuraltalk-master目录,输入python eval_sentence_predictions.py cv\flickr8k_cnn_lstm_v1.p(检查点路径),运行完成后会在neuraltalk-master目录生成result_struct.json文件。
⑥(Visualize the predictions.)
可视化预测。使用visualize_result_struct.html来观察上一步生成的预测结果。这时候第②步下载的图片集就派上用场了。在开启本地服务器后,用浏览器打开http://localhost:8123/visualize_result_struct.html,可以看到可视化的图像和它们的文本描述。如下图:
下一篇Chapter3中将对自己的图片进行处理后预测。