【问题标题】:How could I create a module with learnable parameters when one set of parameters is from Dataset class当一组参数来自 Dataset 类时,如何创建具有可学习参数的模块
【发布时间】:2021-10-27 17:44:05
【问题描述】:

所以,我有一个模型需要训练一些参数。此外,Dataset(torch.utils.data.Dataset) 类中有一些参数可以进行一些预处理。我还需要使用模型的参数来训练它们。那么,您能否让我知道我所做的是否正确:

params = list(model.parameters())
params.extend(list(Dataset.parameters()))
opt = torch.optim.Adam(params,lr=1e-4)

还有一个问题。由于 Dataset 类会同时生成 train_ds 和 val_ds,所以我只需要在获取 train_ds 时训练 Dataset 类的参数即可。为了获得 val_ds,我需要使用数据集的训练参数。那么,如何创建 train_ds 和 val_ds?我是否应该先创建它们,然后使用 tarin_ds 训练模型,然后再次创建它们并使用 val_ds 进行测试?

【问题讨论】:

    标签: deep-learning pytorch


    【解决方案1】:

    Dataset 类没有 .parameters - 它仅用于处理数据。
    您的模型类派生自 nn.Module 类,该类具有 .parameters 并且可以进行训练。
    您似乎需要将可训练的预处理添加到模型中,而不是将其作为数据集类的一部分。

    【讨论】:

    • 如果在 Dataset 类中添加一些带有 requires_grad = True 的参数并使用 params.extend(list(Dataset.parameters())) 怎么样?
    猜你喜欢
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 2012-11-22
    • 2021-05-16
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多