其他分享
首页 > 其他分享> > 深度学习模型需要调哪些参数

深度学习模型需要调哪些参数

作者:互联网

深度学习模型训练时需要调哪些参数?基于PyTorch框架进行总结。

1、参数初始化策略

    代码示例:

# Common practise for initialization.
for layer in model.modules():
    if isinstance(layer, torch.nn.Conv2d):
        torch.nn.init.kaiming_normal_(layer.weight, mode='fan_out',
                                      nonlinearity='relu')
        if layer.bias is not None:
            torch.nn.init.constant_(layer.bias, val=0.0)
    elif isinstance(layer, torch.nn.BatchNorm2d):
        torch.nn.init.constant_(layer.weight, val=1.0)
        torch.nn.init.constant_(layer.bias, val=0.0)
    elif isinstance(layer, torch.nn.Linear):
        torch.nn.init.xavier_normal_(layer.weight)
        if layer.bias is not None:
            torch.nn.init.constant_(layer.bias, val=0.0)

# Initialization with given tensor.
layer.weight = torch.nn.Parameter(tensor)

    常见的初始化策略有:

2、学习率

    初始学习率一般设为:0.001~0.01之间。

2.1、固定学习率

2.2、衰减学习率

2.2.1、按迭代次数调整学习率

    torch.optim.lr_scheduler provides several methods to adjust the learning rate based on the number of epochs.

2.2.2、按评估指标调整学习率

    torch.optim.lr_scheduler.ReduceLROnPlateau allows dynamic learning rate reducing based on some validation measurements.

3、批次大小

    mini-batch、批次大小一般设为:16、32、64、128、256

    大 batch size 占用空间,小 batch size 消耗时间。

4、迭代次数

    一般根据训练时验证集的准确率选择epoch

5、优化器、激活函数

5.1、优化器

5.2、激活函数

6、隐层维度、隐层数

6.1、隐层维度

    一般设为8的倍数,如16、32、64、128、256。

    词嵌入向量维度一般设为128、256。

    一般原则:

6.2、隐层数

7、防止过拟合策略

    三种常用的防止过拟合的策略

7.1、Dropout

7.2、Batch Normalization

7.3、Regularization

7.3.1、L1 Regularization

    代码示例:

l1_regularization = torch.nn.L1Loss(reduction='sum')
loss = ...  # Standard cross-entropy loss
for param in model.parameters():
    loss += torch.sum(torch.abs(param))
loss.backward()

7.3.2、L2 Regularization

    通过在优化器定义中设置weight decay参数实现。

标签:layer,nn,哪些,optim,torch,init,lr,深度,参数
来源: https://blog.csdn.net/tszupup/article/details/111400011