🙆

【備忘録】Pytorch パラメータ設定

2023/11/21に公開

シード設定

def seed_everything(seed=42):
    random.seed(seed)  # Python標準のrandomモジュールのシードを設定
    os.environ['PYTHONHASHSEED'] = str(seed)  # ハッシュ生成のためのシードを環境変数に設定
    np.random.seed(seed)  # NumPyの乱数生成器のシードを設定
    torch.manual_seed(seed)  # PyTorchの乱数生成器のシードをCPU用に設定
    torch.cuda.manual_seed(seed)  # PyTorchの乱数生成器のシードをGPU用に設定
    torch.backends.cudnn.deterministic = True  # PyTorchの畳み込み演算の再現性を確保

seed_everything()  # 上述のシード設定関数を呼び出し

GPU

# GPUが利用可能かどうかを確認し、利用可能ならモデルをGPUに移動
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

モデルの詳細な情報

from torchinfo import summary

# モデルのインスタンス化
model = ConvNet()

# テスト入力
test_input = torch.randn(32, 64, 1)

# テスト入力のサイズ(バッチサイズを除く)
input_size = [(32, 64, 1)]

# summary関数を使ってモデルの概要を表示

# test_inputの形状がtorch.Size([32, 64, 1])である場合、input_size引数は[(32, 64, 1)]として渡す必要があります。
# ただし、torchinfoは通常、バッチサイズを含まない入力サイズを期待しています。したがって、バッチサイズを除外したサイズ、つまり[(64, 1)]を使用します。
summary(model, input_size)# テスト入力データ

==========================================================================================
Layer (type:depth-idx)                   Output Shape              Param #
==========================================================================================
ConvNet                                  [32, 16, 1]               --
├─Conv1d: 1-1                            [32, 64, 8]               32,832
├─ReLU: 1-2                              [32, 64, 8]               --
├─MaxPool1d: 1-3                         [32, 64, 5]               --
├─Conv1d: 1-4                            [32, 64, 12]              32,832
├─ReLU: 1-5                              [32, 64, 12]              --
├─MaxPool1d: 1-6                         [32, 64, 7]               --
├─Conv1d: 1-7                            [32, 32, 14]              16,416
├─ReLU: 1-8                              [32, 32, 14]              --
├─Conv1d: 1-9                            [32, 16, 1]               7,184
├─Tanh: 1-10                             [32, 16, 1]               --
==========================================================================================
Total params: 89,264
Trainable params: 89,264
Non-trainable params: 0
Total mult-adds (Units.MEGABYTES): 28.60
==========================================================================================
Input size (MB): 0.01
Forward/backward pass size (MB): 0.45
Params size (MB): 0.36
Estimated Total Size (MB): 0.81
==========================================================================================

Discussion