Pytorch 模型的超参数优化

新手上路,请多包涵

为 Pytorch 模型执行超参数优化的最佳方法是什么?自己实施例如随机搜索?使用 Skicit 学习?或者还有什么我不知道的吗?

原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 520
1 个回答

许多研究人员使用 RayTune 。它是一个可扩展的超参数调整框架,专门用于深度学习。您可以轻松地将它与任何深度学习框架(下面的 2 行代码)一起使用,它提供了大多数最先进的算法,包括 HyperBand、基于人口的训练、贝叶斯优化和 BOHB。

 import torch.optim as optim
from ray import tune
from ray.tune.examples.mnist_pytorch import get_data_loaders, ConvNet, train, test

def train_mnist(config):
    train_loader, test_loader = get_data_loaders()
    model = ConvNet()
    optimizer = optim.SGD(model.parameters(), lr=config["lr"])
    for i in range(10):
        train(model, optimizer, train_loader)
        acc = test(model, test_loader)
        tune.report(mean_accuracy=acc)

analysis = tune.run(
    train_mnist, config={"lr": tune.grid_search([0.001, 0.01, 0.1])})

print("Best config: ", analysis.get_best_config(metric="mean_accuracy"))

# Get a dataframe for analyzing trial results.
df = analysis.dataframe()

[免责声明:我积极参与这个项目!]

原文由 richliaw 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题