展示和讲述

使用 PyTorch 实现最早的神经图像标题生成器模型之一。文章“Show and Tell”首先出现在 Towards Data Science 上。

来源:走向数据科学
照片由 Ståle Grut 在 Unsplash 上拍摄
照片由 Ståle Grut 在 Unsplash 上拍摄
Ståle Grut Unsplash

简介

自然语言处理和计算机视觉曾经是两个完全不同的领域。至少在我开始学习机器学习和深度学习的时候,我觉得有多种路径可循,而每一条路径,包括 NLP 和计算机视觉,都将我引向一个完全不同的世界。随着时间的推移,我们现在可以观察到人工智能变得越来越先进,多个研究领域之间的交叉越来越普遍,包括我刚才提到的两个领域。

计算机视觉

如今,许多语言模型都能够根据给定的提示生成图像。这是 NLP 和计算机视觉之间桥梁的一个例子。但我想我会把它留到我下一篇文章中,因为它有点复杂。相反,在本文中,我将讨论更简单的方法:图像字幕。顾名思义,这本质上是一种技术,其中特定模型接受图像并返回描述输入图像的文本。

该主题最早的论文之一是 Vinyals 等人于 2015 年撰写的题为“展示和讲述:神经图像字幕生成器”的论文 [1]。在本文中,我将重点介绍如何使用 PyTorch 实现论文中提出的深度学习模型。请注意,我实际上不会在这里演示训练过程,因为这是一个独立的主题。如果您想要关于此的单独教程,请在评论中告诉我。

展示和讲述:神经图像字幕生成器 深度学习

图像字幕框架

编码器 解码器
图 1. [1] 中提出的图像字幕模型,其中编码器部分(最左边的块)实现了 GoogLeNet 模型 [2]。
图 1. [1] 中提出的图像字幕模型,其中编码器部分(最左边的块)实现了 GoogLeNet 模型 [2]。
init-inject pre-inject par-inject merge Show and Tell pre-inject pre-inject

Implementation

import import . as import . as from . 导入 #(1) #(2) #(3) #(4) EMBED_DIM = =