post
BERT
· ☕ 1 min read
BERTの新規性はMasked LM(事前学習タスク) 事前に行うタスク=「事前学習タスク(pre-training task)」 解きたかったタスク=「下流タスク(downstream task)」 渡されたパラメータを下流タスクの学習の際に固定するかしないか 固定するなら「特徴量ベースのアプローチ」 固定されたパラメータを持つモデ ...

PyTorchとメモリ
· ☕ 1 min read
必要なメモリ量 必要メモリ量(byte) = (ニューロンの数 × Batch Size + パラメータ数) × 2 (data & grad) × 4(byte) https://nori-life-log.com/nnの学習で必要なgpuメモリを算出する 重みを固定(freeze) 1 2 3 # freeze all layers for param in model.parameters(): param.requires_grad = False ...

np.float32
· ☕ 1 min read
pythonのfloatはCでいうdouble np.float32はCのfloatと同じ 一方, np.float64はpythonのfloat float in Py == double in C == np.float64 == 8バイト np.float32 === float in C == 4バイト ...

標準化
· ☕ 1 min read
訓練セットの分散、平均、最大値、最小値などの情報を使ってテストセットを変換する ...

DatasetGAN
· ☕ 1 min read
GANによって生成した画像に対して、自動的にアノテーションを付与するネットワークを学習する点が新しい。StyleGANの特徴量は、アノテーションを生成するために十分な情報を持っているという仮説に基づき、シンプルなネットワークでそれを実現できることを示している。 ...

SBERT-WK
· ☕ 1 min read
BERT, Sentence BERT は各層における単語の分散に着目していない 「各単語の各層での埋め込み表現がどの程度の分散を持つか」を調べる 以後, 分散=**各層でのばらつき **なので注意 ↓ can, wouldのような意味の少ない単語だと分散が小さいが, 意味が多い単語だと分散が大きい この問題に対応するために, 各層に対して重み付け和を取ったものを新たな埋め込み ...


einsum
· ☕ 1 min read
アインシュタインの縮約記法 テンソル積を書くと大量の $\Sigma$が出てきてうざい なので, $\Sigma$を省略しよう, というのが事の始まり $\sum_{j} a_{i,j}b_{j,k}$ なら ij,jk → ik プログラム的に考えれば, 単純にfor を外しただけ 例えば ドット積 z[i,j](https://scrapbox.io/yuwd/i%2Cj) += x[i,j](https://scrapbox.io/yuwd/i%2Cj) * y[i,j](https://scrapbox.io/yuwd/i%2Cj) np.einsum("ij,ij->ij", x, y) 内積 z[j,k](https://scrapbox.io/yuwd/j%2Ck) += x[j,i](https://scrapbox.io/yuwd/j%2Ci) * y[i,k](https://scrapbox.io/yuwd/i%2Ck) np.einsum("ji,ik->jk", x, y) 軸の入れ替えなどでも使える y = torch.einsum('nchw->nhwc', y).detach().cpu() 実際は遅いからやめたほうが良さそう ...

world_size
· ☕ 1 min read
world_size プロセス数 rank どのプロセスなのかを指定 ...