【前沿】Pytorch开源VQA神经网络模块,让你快速完成看图问答

2017 年 12 月 18 日 专知 专知内容组(编)

【导读】近期,NLP专家Harsh Trivedi使用Pytorch实现了一个视觉问答的神经模块网络,想法是参考CVPR2016年的论文《Neural Module Networks》,通过动态地将浅层网络片段组合成更深结构的模块化网络。这些模块可以通过联合训练来自由组合。代码已经在Github上开源,让我们来看下。


更多结果可以参考这个链接。

https://github.com/HarshTrivedi/nmn-pytorch/blob/master/visualize_model.ipynb


Neural Module Network (NMN) for VQA in Pytorch

注释:这不是一个用于神经模块网络训练的官方资源库。


NMN是通过动态地将浅层网络片段组合成更深结构的模块化网络。这些模块可以通过联合训练来自由组合。本代码是用PyTorch实现的视觉问答的神经模块网络。大部分想法直接来自下面的文章:


Neural Module Networks: Jacob Andreas, Marcus Rohrbach, Trevor Darrell and Dan Klein. CVPR 2016.

如果您在工作中使用本代码,请引用上述文章。我们在下面介绍重现实验结果的说明,首先看一下结果演示:

 演示:

更多结果可以用visualize_model.ipynb看到

https://github.com/HarshTrivedi/nmn-pytorch/blob/master/visualize_model.ipynb



 依赖关系:

下面是项目的主要python依赖项torch, torchvision caffe, matplotlib,numpy, matplotlib and sexpdata

你还需要有斯坦福的解析器https://nlp.stanford.edu/software/lex-parser.shtml)一旦加载完成,请确保在.bashrc中设置STANFORDPARSER,以便使目录$STANFORDPARSER / libexec /包含有stanford-parser.jar

 下载数据:

您需要从VQA网站下载图像、注释和问题。你也需要下载VGG模型文件来预处理图像。为了节省您的时间和精力,确保下载的文件放置在合适的目录结构中,我准备了几个download.txt

在根目录查找中运行以下命令 find . | grep download.txt。您应该能够看到以下包含download.txt的目录:

./preprocessing/lib/download.txt
./raw_data/Annotations/download.txt
./raw_data/Images/download.txt
./raw_data/Questions/download.txt

每个download.txt都具有特定的指令,您需要在相应的目录中运行wget命令。确保文件与下载数据后相应的download.txt中提到的文件相同。

 预处理:

预处理目录包含预处理raw_data所需的脚本。预处理数据被存储在preprocessed_data中。这个仓库中的所有脚本都在一些set上运行。下载数据时,默认设置(目录名称)是train2014val2014。你可以通过使用pick_subset.py构建一个像train2014-subval2014-sub这样的问题类型特定的子集。您需要确保训练/测试/验证集名称与以下脚本中一致(通常在代码顶部设置)。默认情况下,所有内容都可以在默认设置上运行,但是如果您需要特定设置,则需要按照以下注释操作。您需要按顺序运行以下脚本:

1. python preprocessing/pick_subset.py 
  [# Optional: If you want to operate on spcific question-type ] 2. python preprocessing/build_answer_vocab.py        
  [# Run on your Training Set only] 3. python preprocessing/build_layouts.py              
  [# Run on your Training Set only] 4. python preprocessing/build_module_input_vocab.py  
  [# Run on your Training Set only] 5. python preprocessing/extract_image_vgg_features.py
  [# Run on all Train/ Test / Val Sets]

备忘录:添加setting.py以确保set名称可以用于实验的全局配置。

 运行实验:

你可以用命令python train_cmp_nn_vqa.py训练模型,准确率/损失日志存在logs/cmp_nn_vqa.log。当训练完成后,选择的模型自动保存在saved_models/cmp_nn_vqa.pt

 可视化模型:

选择保存的模型,并通过运行visualize_model.ipynb将其可视化。

 模型评估:

运行命令pythonevaluation/evaluate.py可以对模型进行评估,在stdout上可以看到一个简短的总结报告。

 接下来的计划:

  1. 添加更多的文档;

  2. 做一些代码清理工作;

  3. VQA数据集上记录此实现的结果;

  4. PyTorch中实现NMN的简短博客。

 有问题?

请在hjtrivedi@cs.stonybrook.edu上发邮件给我,我会尽快把它修理好。


参考链接:

https://github.com//HarshTrivedi/nmn-pytorch


-END-

专 · 知

人工智能领域主题知识资料查看获取【专知荟萃】人工智能领域26个主题知识资料全集(入门/进阶/论文/综述/视频/专家等)

同时欢迎各位用户进行专知投稿,详情请点击

诚邀】专知诚挚邀请各位专业者加入AI创作者计划了解使用专知!

请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料

请扫一扫如下二维码关注我们的公众号,获取人工智能的专业知识!

请加专知小助手微信(Rancho_Fang),加入专知主题人工智能群交流!

点击“阅读原文”,使用专知

登录查看更多
0

相关内容

视觉问答(Visual Question Answering,VQA),是一种涉及计算机视觉和自然语言处理的学习任务。这一任务的定义如下: A VQA system takes as input an image and a free-form, open-ended, natural-language question about the image and produces a natural-language answer as the output[1]。 翻译为中文:一个VQA系统以一张图片和一个关于这张图片形式自由、开放式的自然语言问题作为输入,以生成一条自然语言答案作为输出。简单来说,VQA就是给定的图片进行问答。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【斯坦福CS520】向量空间中嵌入的知识图谱推理,48页ppt
专知会员服务
100+阅读 · 2020年6月11日
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
35+阅读 · 2019年12月15日
开源书:PyTorch深度学习起步
专知会员服务
50+阅读 · 2019年10月11日
计算机视觉最佳实践、代码示例和相关文档
专知会员服务
17+阅读 · 2019年10月9日
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
19+阅读 · 2019年10月28日
PyTorch & PyTorch Geometric图神经网络(GNN)实战
专知
81+阅读 · 2019年6月1日
资源 | 最强预训练模型BERT的Pytorch实现(非官方)
全球人工智能
7+阅读 · 2018年10月18日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
手把手教你安装深度学习软件环境(附代码)
数据派THU
4+阅读 · 2017年10月4日
Arxiv
9+阅读 · 2018年5月24日
VIP会员
相关VIP内容
【斯坦福CS520】向量空间中嵌入的知识图谱推理,48页ppt
专知会员服务
100+阅读 · 2020年6月11日
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
35+阅读 · 2019年12月15日
开源书:PyTorch深度学习起步
专知会员服务
50+阅读 · 2019年10月11日
计算机视觉最佳实践、代码示例和相关文档
专知会员服务
17+阅读 · 2019年10月9日
Top
微信扫码咨询专知VIP会员