yiskw note

機械学習やプログラミングについて気まぐれで書きます

【PyTorch】nn.Sequentialで動画の前処理を行う

概要

PyTorchで動画データを読み込むにあたって,
動画をテンソル型に変換し,バッチ化するために前処理が必要となります.
動画の前処理は,

  1. 動画中のどのフレームを使用するかを決める時間方向の前処理
  2. 空間方向の前処理 (リサイズやクロップ,フリップなど)

の二つに分けられます.
今まではいずれも自分で実装していたのですが,
2番目の空間方向の前処理はnn.Sequentialを用いることで,
自前実装なしで行えるということを知ったので,こちらにメモを残しておきます.

今回使用したコードはこちらにまとめてあります.

github.com

続きを読む

【Rust】順列,組み合わせ,重複組み合わせを列挙する

Rustで順列や組み合わせ,重複組み合わせを列挙する方法がわからなかったので,
調べた結果をこちらにメモしておきます.

方法

Rustのitertools::Itertoolsトレイトにはそれぞれ順列,組み合わせ,重複組み合わせを列挙するメソッドである,
permutations, combinations, combinations_with_replacementが提供されています.

use itertools::Itertools;

fn main() {
    // nPr (n = 3, r = 2)
    println!("Permutation.");
    for perm in (0..3).permutations(2) {
        println!("{:?}", perm);
    }

    // nCr (n = 3, r = 2)
    println!("\nCombination.");
    for comb in (0..3).combinations(2) {
        println!("{:?}", comb);
    }

    // nHr (n = 3, r = 2)
    println!("\nCombination with replacement.");
    for comb in (0..3).combinations_with_replacement(2) {
        println!("{:?}", comb);
    }
}
Permutation.
[0, 1]
[0, 2]
[1, 0]
[1, 2]
[2, 0]
[2, 1]

Combination.
[0, 1]
[0, 2]
[1, 2]

Combination with replacement.
[0, 0]
[0, 1]
[0, 2]
[1, 1]
[1, 2]
[2, 2]

Reference

Starshipを使ってプロンプトをカスタマイズする

概要

Rust製のソフトウェアであるStarshipを用いて,プロンプトをカスタマイズしてみたので,
その使い方についてこちらにメモを残しておきます.

ターミナルでの作業の効率化については,他にも記事を書いておりますので,良ければご参照ください.

yiskw713.hatenablog.com

yiskw713.hatenablog.com

続きを読む