image caption pytorch
1.0.0
使用基于编码器-解码器架构的 PyTorch 实现神经图像字幕模型。
数据集是Flikr8k,它足够小,可以满足计算预算并快速获得结果。数据集中有 8091 张图像,每张图像有 5 个标题。因此,如果模型过于复杂,很容易出现过拟合。官方来源已损坏,数据集的另一个链接可能位于此处和此处
模型架构描述如下。图像的编码器网络是 Resnet-101(可以从 torchvision 加载)。解码器基本上是一个基于 LSTM 的语言模型,以上下文向量(编码图像特征)作为 LSTM 的初始隐藏/单元状态 [1]。还实现了注意力模型[2]。
该模型由 SGD 进行动量训练。学习率从 0.01 开始,并在停滞状态时除以 10。使用 0.9 的动量和 0.001 的权重衰减。
模型[1]能够得到相对合理的描述,BLEU-1测试得分为35.7。
图片 | 字幕 |
---|---|
两只狗在草地上玩耍。 | |
一个人在船上划皮划艇。 | |
一个男孩正在水池里戏水。 | |
两个人坐在水边的码头上。 | |
一名身穿红色制服的足球运动员正在人群面前拿着足球奔跑。 | |
一名滑雪板运动员正在从山上跳下来。 | |
一只棕色的狗正在沙子里玩球。 | |
一个穿着蓝色衬衫的男孩正在草地上奔跑。 | |
一群人穿着色彩缤纷的服装。 |
火炬0.4.1
[1] 展示和讲述:神经图像字幕生成器 (https://arxiv.org/abs/1411.4555)
[2] 展示、参与和讲述:具有视觉注意力的神经图像字幕生成 (https://arxiv.org/abs/1502.03044)