初心者データサイエンティストの備忘録

調べたことは全部ここに書いて自分の辞書を作る

2024-06-01から1ヶ月間の記事一覧

【Python】浅いコピー・深いコピーを図解する

はじめに Pythonの浅いコピーと深いコピーについて勉強したのでまとめようと思います。 浅いコピー・深いコピーの定義 Pythonの公式ドキュメントでは、浅いコピーと深いコピーを下記のように定義しています。 浅い (shallow) コピーと深い (deep) コピーの違…

【PyTorch】テンソルがraw majorであることの確認

はじめに ↓の過去記事で「PyTorchでは、テンソルが作成されたとき、その要素はメモリ上にraw majorと呼ばれる方式で並びます」と書きました。本記事では、テンソルの要素がraw majorで並んでいることを、各要素のメモリアドレスを見ることで確認します。 ais…

【PyTorch】viewとreshapeの違い

はじめに PyTorchには、テンソルを変形するメソッドとしてtorch.Tensor.viewとtorch.Tensor.reshapeが用意されています。本記事では、メソッドviewとreshapeの違いについてまとめます。 本記事のサマリ viewは要素が順に並んでいるときしか使えない。reshape…

【PyTorch】モデルの保存と読み込み

はじめに PyTorchのチュートリアルを勉強しています。本記事では「0. PyTorch入門」の「 7. モデルの保存・読み込み」を学んだ結果をまとめようと思います。 モデルの保存・読み込み方法 PyTorchで作成したモデルの保存・読み込み方法を図1にまとめました。…

【Python】f文字列の書式指定でハマった

はじめに Pythonのf文字列の書式指定でハマったので、記録しておきます。 ハマったこと 下記のコードでprintしたときに、想定と異なる挙動をしました。 print(f"{0.123456789: <010f}") # ->「0.123457」 と表示された 書式指定が<010fなので、左詰め・桁数…

【PyTorch】Negative Log Likelihood・Kullback Leibler距離・Cross Entropyの関係

はじめに PyTorchのチュートリアルの「0.PyTorch入門 6.最適化」に、Negative Log Likelihood(以下、NLL)という損失関数が紹介されていました。私はこの損失関数を知らなかったので、調査してみました。その結果、NLLはKullback Leibler距離(以下、KL距離…

【PyTorch】テンソルに対する勾配とヤコビ行列

はじめに PyTorchのチュートリアルを勉強しています。その中の「0. PyTorch入門 5.自動微分」で分からなかったことがあったので勉強し、まとめてみます。 わからなかったこと 「0. PyTorch入門 5.自動微分」の最後の方に「補注:テンソルに対する勾配とヤコ…

【PyTorch】nn.Moduleの形で使える理由

はじめに PyTorchのチュートリアルの「0. PyTorch入門 [4]モデル構築」を勉強しています。この中で、クラスnn.Moduleを継承する箇所があります。このnn.Moduleについて、ソースコードを読んだところ、奇妙なことに気付きました。ディレクトリの構成が図1の…