最新动态
图片标题生成器(literature:Show and Tell: A Neural Image Caption Generator)
2024-12-20 16:59

@[TOC]

图片标题生成器(literature:Show and Tell: A Neural Image Caption Generator)

NIC

图片标题生成器是基于CNN+LSTM的一种神经网络系统,以文献《Show and Tell: A Neural Image Caption Generator》为参考,作者构造了一种叫做NIC(Neural Image Caption)神经网络系统,以CNN提取图片特征,最后一个隐藏层(hidden layer)作为LSTM的输入。

LSTM

LSTM(Long Short-term Memory)是一种特殊的RNN(Recurrent Neural Network).

最后达到的效果是对于任意一张图片,可以生成对应的一句话标题。



有关这篇文献的实现在GitHub上有很多,有一些基于MSCOCO数据集,有一些基于Fliker8k或者Flikr39k数据集,MSCOCO数据集的train、valid、test图片都要远多于另外两个。本文我们采用数据集Fliker8k实现。

Coding


这份代码把 train and val 放在一起,由于数据集较小,训练比较容易一点。



config文件用来调整各种参数,由于train总共6000张图片,原始配置是epoch= 20,batch_size = 64,batch_size(批大小)与显存有关,batch_size越大训练速度会加快,但是很耗费显存,batch_size越小会很耗时间。实际情况下我们按自己的需要来确定批大小。
本次我们使用batch_size = 10,所以6000张图片,需要处理600次。



训练完成后,在model_data文件夹下会产生一系列HDF5文件,此时我们可以打开文件,测试最终的效果。
生成的图片和原始图片都在文件夹内。


Beam Search

Beam Search(集束搜索)是一种启发式图搜索算法,通常用在图的解空间比较大的情况下,为了减少搜索所占用的空间和时间,在每一步深度扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较高的结点。这样减少了空间消耗,并提高了时间效率,但缺点就是有可能存在潜在的最佳方案被丢弃,因此Beam Search算法是不完全的,一般用于解空间较大的系统中。



Beam Search 等于1的时候就退化到了贪心算法,在BLEU指标上贪心的Beam Search要比Beam Search = 20时评分低2个BLEU点。

We used the BeamSearch approach in the following experiments, with a beam of size 20. Using a beam size of 1 (i.e.,greedy search) did degrade our results by 2 BLEU points on average.

https://www.cnblogs.com/sddai/p/10552592.html

    以上就是本篇文章【图片标题生成器(literature:Show and Tell: A Neural Image Caption Generator)】的全部内容了,欢迎阅览 ! 文章地址:http://fabua.ksxb.net/quote/4297.html 
     动态      相关文章      文章      同类文章      热门文章      栏目首页      网站地图      返回首页 海之东岸资讯移动站 http://fabua.ksxb.net/mobile/ , 查看更多