VQA 2.0数据集的学习和使用过程

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


前言

该文章记录本人第一次对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

(3)trainval_annotation和trainval_question:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值