文章目录
前言
该文章记录本人第一次对VQA 2.0数据集进行研究的全过程。
该过程中,感谢 某博主 的指点,帮了我不少。非常感激!
什么是VQA
VQA任务就是给定一张图片和一个问题,模型要根据给定的输入来进行回答。
很明显,VQA任务的输入有两个(image和question),对于如何提取image的feature,这里就不在赘述, 可以使用CNN提取特征的方式,CNN可以选择Resnet、VGG等骨干网络(去除pooling和fc层)。
对于如何提取question的特征,一般的做法是,由于question本身是文字,需要转换为对应的向量形式,因为模型是不认识文字的,所以要先将每个词转换为与之对应的向量,简单的做法是使用one-hot编码,当然这里你首先是需要建立一个词典(包含你任务中所有可能出现的单词)one-hot编码例如:
初始有一个词典:['a','is','he','boy','she','dog','school','man','woman','king','queen']
那出现的单词可以用one-hot编码来表示这个单词,如’he’->[0,0,1,0,0,0,0,0,0,0,0],很明显的缺点就是当dictionary很大时,one-hot编码会特别稀疏,
这时候一般使用其它的编码方式,比如说你可以使用预训练的glove向量
当我们将单词转换为对应的向量后,此时我们要整句话对应的向量送往RNN中来提取对应的文本特征,RNN我们一般是会选择LSTM或者GRU(需要讲解LSTM和GRU的我们可以下次再说)。
得到image和question的feature后,就可以通过模型去训练,训练的方式可以使用多标签分类的形式,所以它的损失也就是一个多标签损失,也就可以使用交叉熵损失。
一、下载原始数据集VQA 2.0
下载数据的链接:https://visualqa.org/download.html
数据集主要是有三部分:
(1)VQA Annotations:
Training:4437570
Validation:2143540
以上数据的下载链接:https://visualqa.org/download.html
(2)VQA Input Questions:
Training:443757
Validation:214354
Testing:447793

本文详细介绍了VQA2.0数据集的下载与预处理过程,包括原始数据集、预训练的glove词向量、问题和标注的下载,以及如何使用预训练的imagefeature。此外,还提到了建立字典、转换为词向量和模型训练的准备工作。
最低0.47元/天 解锁文章
626

被折叠的 条评论
为什么被折叠?



