内容简介:雷锋网按:本文为 AI 研习社编译的技术博客,原标题 Image Captioning with Attention翻译 | 刘娇 整理 | 余杭图像描述类任务就是给图像生成一个标题。 给定一个图像:
雷锋网按:本文为 AI 研习社编译的技术博客,原标题 Image Captioning with Attention
翻译 | 刘娇 整理 | 余杭
图像描述类任务就是给图像生成一个标题。 给定一个图像:
图片出处 , 许可证:公共领域
我们的目标是用一句话来描述图片, 比如「一个冲浪者正在冲浪」。 本教程中用到了基于注意力的模型,它使我们很直观地看到当文字生成时模型会关注哪些部分。
这个模型的结构类似于论文: Show, Attend and Tell: Neural Image Caption Generation with Visual Attention.
本教程中的代码使用到了 tf.keras 和 eager execution 这两个工具,链接里有详细的内容可以学习。
这个 notebook 展示了一个端到端模型。 运行的时候,它会自动下载 MS-COCO 数据集,使用 Inception V3 模型训练一个编码 - 解码器,然后用模型对新图像进行文字描述。
这篇代码可以在 Colab 中运行,但是需要 TensorFlow 的版本 >=1.9
本实验对数据进行打乱以后取前 30000 篇描述作为训练集,对应 20000 篇图片(一张图片可能会包含多个描述)。 训练模型的数据量相对较小,因此只用了一个 P100 GPU,训练模型大约需要两个小时。
下载 MS-COCO 数据集
MS-COCO 数据集包含 82,000 多张图片,每张图片都是用至少 5 句不同的文字描述的。 下面的代码在运行时会自动下载并且解压数据。
注意: 提前下载好数据,数据文件大小 13GB 。
选择是否压缩训练集大小来减少训练时间
本教程中选择用 30000 篇描述和它们对应的图片来训练模型,但是当使用更多数据时,实验结果的质量通常会得到提高。
Inceptions v3 图像预处理
这个步骤中需要使用 InceptionV3 (在 Imagenet 上训练好的模型) 对每一张图片进行分类,并且从最后一个卷积层中提取特征。
首先,我们需要将图像转换为 inceptionV3 需要的格式:
把图像的大小固定到 (299, 299);
使用 preprocess_input 函数将像素调整到 -1 到 1 的范围内(为了匹配 inceptionV3 的输入格式)。
初始化 InceptionV3 & 下载 Imagenet 的预训练权重
将 InceptionV3 的最后一个卷积层作为输出层时,需要创建一个 keras 模型
将处理好的图片输入神经网络,然后提取最后一层中获得的向量作为图像特征保存成字典格式(图名 --> 特征向量);
选择卷积层的目的是为了更好地利用注意力机制,并且输出层的数据大小是8x8x2048;
......
想要继续阅读,请移步至我们的AI研习社社区: https://club.leiphone.com/page/TextTranslation/628
更多精彩内容尽在 AI 研习社。
不同领域包括计算机视觉,语音语义,区块链,自动驾驶,数据挖掘,智能控制,编程语言等每日更新。
手机端可以扫描二维码访问:
雷锋网(公众号:雷锋网 (公众号:雷锋网) )雷锋网
雷锋网原创文章,未经授权禁止转载。详情见 转载须知 。
以上所述就是小编给大家介绍的《如何使用注意力模型生成图像描述?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Understanding Computation
Tom Stuart / O'Reilly Media / 2013-6-3 / USD 39.99
Finally, you can learn computation theory and programming language design in an engaging, practical way. Understanding Computation explains theoretical computer science in a context you'll recognize, ......一起来看看 《Understanding Computation》 这本书的介绍吧!