PyTorchモデル構造の確認方法
PyTorchモデル構造の確認方法
概要
- PyTorchモデルの構造(テキスト/画像)を確認するための定型処理をまとめておく
環境
- Python 3.10.14
- PyTorch 2.3.1
- torchview 0.2.6
確認方法
1.text形式
import torchinfo import torch import torchvision input_size = (1,3,256,256) model = torchvision.models.wide_resnet50_2() depth = 3 def get_model_summary(model,input_size,depth,device=torch.device('cpu'),save_path=None): summary = torchinfo.summary( model=model, input_size=input_size, depth=depth, device=device, #'cuda:0', col_names=['input_size','output_size','num_params']) if save_path is None: print(summary) else: with open(save_path,mode='w',encoding='utf-8') as fw: fw.write(str(summary)) pass get_model_summary(model=model,input_size=input_size,depth=depth)
2.画像形式
from torchview import draw_graph import torchvision input_size = (1,3,256,256) model = torchvision.models.wide_resnet50_2() depth = 3 draw_graph( model, input_size=input_size, graph_name='model', depth=depth, expand_nested=True, graph_dir='TB', # TB:TopToBottom/LR:LeftToRight/BT:BottomToTop/RL:RightToLeft hide_inner_tensors=True, roll=False, show_shapes=True, save_graph=True, filename='model_graph', directory='./', ).visual_graph
torch.nn.functional.interpolateのalign_cornersの設定について
概要
- torch.nn.functional.interpolateのalign_cornersの設定について、整理しまとめる
環境
- PyTorch 2.5
まとめ
1.公式ドキュメント確認
- 公式ドキュメントによると、align_cornersは以下のような働きをする
2.図としてまとめ
公式ドキュメントの内容および、実際にコードを書いて動かした結果より、align_cornersの設定について図にまとめる
align_corners=False(Default)
- 補間前後の点をそろえる(正方形として扱うので、実際は正方形をそろえるということになる)
- 補間時に、境界外の値は、コーナーの値となる(以下例の場合、補間処理では白丸となるが、コーナーの値(1や2)の値に置き換えられる)



align_corners=True
- 補間前後で、コーナーピクセルの中心をそろえる(これがalign cornersの意味)


3.どちらのパラメーターを選ぶべきか
PyTorchモデル構造の可視化手法
概要
- PyTorchモデルの構造を可視化(グラフ化)する手法を試す
- 条件
- 以下のライブラリを使用して可視化を行う(有名どころのライブラリ)
- torchviz : https://github.com/szagoruyko/pytorchviz
- hiddenlayer : https://github.com/waleedka/hiddenlayer
- torchview : https://github.com/mert-kurttutan/torchview
- torchlens : https://github.com/johnmarktaylor91/torchlens
- 対象モデル:ResNet18
- 以下のライブラリを使用して可視化を行う(有名どころのライブラリ)
- 結論
- モデル内容を把握するには、最もtorchviewが見やすかった(layerごとのin/outの型、モデル構造が分かりやすい)
環境
- Python 3.10.14
- PyTorch 2.3.1
- torchviz 0.0.2
- hiddenlayer 0.3
- torchview 0.2.6
- torchlens 0.1.21
結果
1.torchviz
コード
import torch import torchvision from torchviz import make_dot model = torchvision.models.resnet18() x = torch.randn(1,3,256,256) y = model(x) make_dot(y.mean(),params=dict(model.named_parameters()))
可視化結果

2.hiddenlayer
コード
import torch import torchvision import hiddenlayer as hl model = torchvision.models.resnet18() hl.build_graph(model, torch.zeros([1, 3, 256, 256]))
可視化結果
→エラーとなって実行できず
AttributeError: module 'torch.onnx' has no attribute '_optimize_trace’
3.torchview
コード
import torch import torchvision from torchview import draw_graph model = torchvision.models.resnet18() draw_graph(model, input_size=(1,3,256,256), expand_nested=True).visual_graph
可視化結果

4.torchlens
コード
import torch import torchvision import torchlens as tl model = torchvision.models.resnet18() tl.show_model_graph(model,x)
可視化結果

VSCodeでPythonデバッグ時にモジュール実行する方法
VSCodeでPythonデバッグ時にモジュール実行する方法
※環境:VSCode 1.89.1
通常(コマンドライン実行)時、モジュール実行するには
$ python -m <dirname>.<modulename>
のように入力する。
[例:カレントディレクトリから見て、toolフォルダの中にtrain.pyがある場合]
$ python -m tool.train
このようなモジュールをVSCodeでデバッグする場合、launch.jsonにて、
{ ... "configurations": [ ... "module":"<dirname>.<modulename>", ... ] }
のように設定するとよい。
macOS SonomaでMeldが動作しない
macOS SonomaでMeldが動かない
概要
- 以下環境で、Meld(Diffツール)が動作しない
- macOS Sonoma14.2.1
- M1 MacBook Air
- Meld 3.21.0-r3,19(brewでインストール)
- 現象:起動はするものの、頻繁にクラッシュする模様(クラッシュの条件までは現状不明)
- 詳細バージョンをメモしていなかったが、Sonoma 14.2.1にアップデートする前は、そもそもMeldが起動できなかった
- 現時点では、使える見込みはなさそうなので、mac(Xcode)標準のFileMergeあたりで代用するか…
メモ(調べたこと)
Githubを見ても、動作しないことについてのissueが現状open状態となっている
- 現時点では、有効な解決方法はなさそう github.com
Meld公式ページでも、OS Xはまだサポートしていないとの記載 meldmerge.org
Homebrewとしても、Meldは非推奨となっている formulae.brew.sh
Meldの次バージョン(3.21.0-r4)が、現状はPre-release
- これがリリースされれば、Sonomaでも動くのかもしれない(未検証) github.com
M1 MacでPyTorch2.1環境構築
M1 MacでPyTorch2.1環境構築
概要
環境
- MacBook Air(M1,2020)
- macOS Sonoma 14.1.2
- miniconda 23.11.0
1.仮想環境を作成
$ conda create --name torch2_1 python=3.11 $ conda activate torch2_1
2.PyTorchのインストール
$ conda install pytorch::pytorch torchvision torchaudio -c pytorch
- 2023/12/31時点での実行
- これによりインストールされるのは以下のものとなる
- pytorch:2.1.2
- torchvision:0.16.2
- torchaudio:2.1.2
3.パッケージのインストール
$ conda install numpy opencv matplotlib scikit-learn pandas jupyter tqdm imgaug torchmetrics torchinfo timm ttach lightning
4.動作チェック
>>> import torch >>> torch.backends.mps.is_available() True
M1 MacでTensorFlow環境構築(TF2.14版)
M1 MacでTensorFlow2.14環境構築
概要
環境
- MacBook Air(M1,2020)
- macOS Sonoma 14.1.2
- miniconda 23.11.0
1.仮想環境を作成
$ conda create --name tf2_14 python=3.11 $ conda activate tf2_14
2.パッケージのインストール
$ conda install numpy opencv matplotlib scikit-learn pandas jupyter tqdm pydot imgaug
3.TensorFlowのインストール
$ pip install tensorflow==2.14 $ pip install tensorflow-metal==1.1.0
4.動作チェック
import tensorflow as tf tf.config.list_physical_devices('GPU')
補足
- Apple公式のインストール方法
- tensorflow-metalのバージョン(TensorFlowとの対応バージョン一覧)