ViTで出力されるベクトルの次元の意味
Huggingfaceで下記コマンドを実行すると、ViTの最終層のベクトルが得られる
model = ViTModel.from_pretrained('google/vit-base-patch32-224-in21k', output_attentions=True, output_hidden_states=True, use_mask_token=True) x = model(x) print(x.last_hidden_state.shape)
このとき、得られるベクトルのサイズは、torch.Size([N, 50, 768])になっているはずだ。
各次元の意味に関して、
N: バッチサイズを表す。dataloaderで指定したバッチサイズがここに示されているはずだ。
50: 1枚の画像を分割して得られた、パッチ画像の総数。google/vit-base-patch32-224-in21kを使用している場合、224/32=49、これに[CLS]トークンを加えて、50のパッチ画像となる。
768: Transformer系のモデルではベクトルは768次元の特徴であることが多い
ディスカッション
コメント一覧
まだ、コメントがありません