Torch内でのハイパーパラメータの検索方法は何ですか?

Torchでのハイパーパラメータの探索は、通常GridSearchやRandomSearch方法を使用します。以下は、GridSearch方法を使用してハイパーパラメータの最適な組み合わせを探索する簡単なコード例です。

from torch import nn
from torch.optim import Adam
from sklearn.model_selection import ParameterGrid

# 定义模型
class SimpleModel(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super(SimpleModel, self).__init__()
        self.fc1 = nn.Linear(input_size, hidden_size)
        self.relu = nn.ReLU()
        self.fc2 = nn.Linear(hidden_size, output_size)
    
    def forward(self, x):
        x = self.fc1(x)
        x = self.relu(x)
        x = self.fc2(x)
        return x

# 定义超参数网格
param_grid = {
    'input_size': [10, 20],
    'hidden_size': [100, 200],
    'output_size': [2, 3],
    'learning_rate': [0.001, 0.01]
}

# 使用GridSearch搜索最佳超参数组合
best_score = 0
best_params = None
for params in ParameterGrid(param_grid):
    model = SimpleModel(params['input_size'], params['hidden_size'], params['output_size'])
    optimizer = Adam(model.parameters(), lr=params['learning_rate'])
    
    # 训练模型并评估性能
    # 这里省略训练过程
    
    score = 0.8  # 假设评估得分为0.8
    
    if score > best_score:
        best_score = score
        best_params = params

print("Best score:", best_score)
print("Best params:", best_params)

この例では、私たちは簡単なニューラルネットワークモデルSimpleModelを定義し、そしてハイパーパラメータのグリッドparam_gridを定義します。次に、ParameterGrid(param_grid)を使用してすべての可能なハイパーパラメータの組み合わせを生成し、ループ中でモデルをインスタンス化し、トレーニングと評価を行います。最後に、評価スコアに基づいて最適なハイパーパラメータの組み合わせを選択します。ハイパーパラメータのグリッドや評価スコアの計算方法を必要に応じて変更することができます。

bannerAds