前提・実現したいこと
ubuntu20.04
python3.8
tensorflow2.4を使用しています
現在、画像からキャプションを生成するデータセットを作成しています。
DATASET_DIRに8枚の画像があり、TOKEN_FILEに8×5の文が格納されています。ですが、下記のようなimage_idとimage_textがあってないようなエラーがでてしまっています。これはどこを直せばいいのでしょうか。
申し訳ございませんが、ご教示いただけないでしょうか。
よろしくお願い致します。
発生している問題・エラーメッセージ
80%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 36/45 [00:04<00:01, 8.43it/s]['7.jpg#1', 'A', 'A', 'A.'] 82%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 37/45 [00:04<00:00, 8.38it/s]['7.jpg#2', 'A', 'A', 'A.'] 84%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 38/45 [00:04<00:00, 8.39it/s]['7.jpg#3', 'A', 'A', 'A.'] 87%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 39/45 [00:04<00:00, 8.41it/s]['7.jpg#4', 'A', 'A', 'A.'] 89%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 40/45 [00:04<00:00, 8.21it/s][] 89%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 40/45 [00:04<00:00, 8.46it/s] Traceback (most recent call last): File "/home/limlab/deep_learning/keras_imagecaption/japa_p.py", line 406, in <module> image_texts_dict = tp.MakeTextsDict() File "/home/limlab/deep_learning/keras_imagecaption/japa_p.py", line 198, in MakeTextsDict image_id, image_text = self.GetIDAndText(token) File "/home/limlab/deep_learning/keras_imagecaption/japa_p.py", line 184, in GetIDAndText image_id, image_text = token[0], token[1:] IndexError: list index out of range
該当のソースコード
DATASET_DIR = "/deep_learning/keras_imagecaption/dataset/image" TOKEN_FILE = "/deep_learning/keras_imagecaption/dataset/Flickr8k.token.txt" def GetIDAndText(self, token): """ ・空白で分割する。 ・最初のトークンをID、残りをテキストとして取得する。 ・画像IDからファイル名だけ取り出す。 ・テキスト内の単語が分割されているので、1つのテキストに結合する。 """ token = token.split() image_id, image_text = token[0], token[1:] image_id = image_id.split('.')[0] image_text = ' '.join(image_text) return image_id, image_text
TOKEN_FILE
0.jpg#0 A A A.
0.jpg#1 A A A.
0.jpg#2 A A A.
0.jpg#3 A A A.
0.jpg#4 A A A.
1.jpg#0 A A A.
1.jpg#1 A A A.
1.jpg#2 A A A.
1.jpg#3 A A A.
1.jpg#4 A A A.
2.jpg#0 A A A.
2.jpg#1 A A A.
2.jpg#2 A A A.
2.jpg#3 A A A.
2.jpg#4 A A A.
3.jpg#0 A A A.
3.jpg#1 A A A.
3.jpg#2 A A A.
3.jpg#3 A A A.
3.jpg#4 A A A.
4.jpg#0 A A A.
4.jpg#1 A A A.
4.jpg#2 A A A.
4.jpg#3 A A A.
4.jpg#4 A A A.
5.jpg#0 A A A.
5.jpg#1 A A A.
5.jpg#2 A A A.
5.jpg#3 A A A.
5.jpg#4 A A A.
6.jpg#0 A A A.
6.jpg#1 A A A.
6.jpg#2 A A A.
6.jpg#3 A A A.
6.jpg#4 A A A.
7.jpg#0 A A A.
7.jpg#1 A A A.
7.jpg#2 A A A.
7.jpg#3 A A A.
7.jpg#4 A A A.
あなたの回答
tips
プレビュー