stMind

about Tech, Computer vision and Machine learning

stackoverflowで今年回答した内容のまとめ

今年の目標の一つとして、stackoverflowで回答を増やそうと考えていたのだけど、現時点で11件ほど行なうことが出来たので、ここでまとめておこうと思う。回答がAcceptされるとベターだとは思うものの、回答後のリアクションは質問者次第なので、コミュニティに貢献できたと考えれば良いかな。

一応、スタッツとしては以下のような感じ。

  • Accepted : 1
  • Upvote : 6

カテゴリとしては、Tutorialなどをやっていたこともあって、transformer系の質問への回答が多めになった。自分自身の勉強にもなるし、コミュニティ貢献としてstackoverflowの回答をゆるりと続けていこうと思う。

1. Masking layer vs attention_mask parameter in MultiHeadAttention

Acceptされた回答。MultiHeadAttentionを使うときattention_maskでマスク指定しているが、MHAの前にMaskingレイヤーを使ったらattention_maskは不要なのか?それとも両方使わないといけないのか?という質問。 調べてみると、Maskingレイヤーで生成されたマスクは、対応しているレイヤーでは入力に対応するマスクの自動取得して使う機能が入っているが、MHAはTF2.10.0で対応ということだったので、そのように回答。

stackoverflow.com

2. Can't install tensorflow-io on m1

一番Upvoteされた回答。m1 macにtensorflow-ioに入れるには?ということで、git cloneしてwheelをローカルで作ってpip installする方法を回答。結構、こういうのが一番困っているのかもしれない。

stackoverflow.com

3. Meaning of the array returned by the activation function GELU (Vision Transformer)

これも一つUpvoteが付いた回答。ViTで推論するとき、GELUの出力の最も高い値をつかって分類しているが問題ないか?という質問。そのまま使うか、確率的な値が必要であればsoftmaxを使うこともできると回答。

stackoverflow.com

4. Transformer with multi input

二つの異なる系列データに対して、Cross Attentionを行なう方法を知りたいという質問。具体的なサンプルはMultiHeadAttentionの公式APIドキュメントにあったので、それを回答。

stackoverflow.com

5. Visualizing ViT Attention maps after fine tuning on medical dataset

vit-kerasを使って独自モデルのAttentionを可視化したいけどエラーになる、attention_mapへの引数の渡し方が間違っている様子だったので、修正方法を回答。

stackoverflow.com

6. Patch Encoder for ViT implementation in Python

PatchEncoderクラスで実行されている処理について知りたいということだったので、Dense適用、position embeddingの追加をcifar10を例に回答。

stackoverflow.com

7. ViVIT PyTorch: RuntimeError: multi-target not supported at /pytorch/aten/src/THCUNN/generic/ClassNLLCriterion.cu:15

ViViTを実行した時に、RuntimeError: multi-target not supported at /pytorch/aten/src/THCUNN/generic/ClassNLLCriterion.cu:15が出るようなので調べてみて、Pytorchでは1.10.0から対応してることと、実際に実行できるcolabのノートを回答。

stackoverflow.com

8. In transformers of ViT model, last_hidden_state is not equal to hidden_states[-1]

huggingfaceのViTで、last_hidden_stateとhidden_states[-1]は同じに思うけれど、実際の値が異なるのはなぜか?という質問。コードを読んでみて、last_hidden_stateの方はLayernormが適用されている点が違いで、実際にhidden_states[-1]にLayernormを適用すれば同じ値になることを確認してcolabのノートと合わせて回答。

stackoverflow.com

9. Vision Transformer models in vit-keras

vit-kerasでvit-b32とvit-b16以外の使用可能なモデルと入力画像サイズを知りたいということで、調べて回答。

stackoverflow.com

10. no fine_tune_checkpoint field in pipeline.config

TF OD APIでpipeline.configのfine_tune_checkpointの指定方法を回答。

stackoverflow.com

11. Google Kickstart 2014 Round D Sort a scrambled itinerary - Do I need to bring the input in a ready-to-use array format?

これは少し違う話で、GoogleのCodingコンペティションKickstartで入力をどうやって受け取ればいいのか?ということだったので、サンプルを提示して回答。

stackoverflow.com