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)