LoginSignup
5
3

More than 1 year has passed since last update.

【備忘録】pytorchで空の配列にtensorをappendするには

Last updated at Posted at 2022-01-19

モチベーション

備忘録です。
for文を使って処理した値を空のリストに入れるというような操作をpytorchでやりたかったのですが、pytorchで空の配列を作ろうとすると処理後のtensorの次元にあったものを作って代入する必要があるっぽい。しかしパラメータによって処理後のtensorの次元が異なっていてそれに合わせた空のtensorを作るのはあまりにも面倒くさいと頭を抱えていたところようやくやり方を見つけました。
参考URL : Appending to a tensor

僕が頭を抱えていたところ

ここは僕個人の問題なので読み飛ばしていただいて構いません。

1次元畳み込みtorch.Conv1dをつかってチャネルごとの特徴量を抽出した後、それらを結合したかった。

やり方

  1. 一般的なやり方通り空の配列[]を作る
  2. forループの中で処理したtensorを空の配列にappendする
  3. forループ終了後はtorch.catでリストの中身のtensorをくっつけたい次元を指定してconcatenate.
model.py
features = []
for i in range(x.shape[1]):
    x_conved = cnn1d(x[ :, i, :])
    features.append(x_conved)
features = torch.cat(features, dim = 1)

なんでこんな簡単なこと思いつかなかったんだろう・・・

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3