郑州网站建设推广优化,网络营销中网站的目的是,wordpress文章导入公众号,宁波网站建站深度学习模型#xff0c;训练过程中#xff0c;经常遇到预测的结果集中在某个值#xff0c;而且在学习的过程中会变#xff0c;样例如下。 主要有如下解决方案
1、更换relu -tanh 或者其他激活函数
2、更改随机种子#xff0c;估计是没有初始化好#xff0c;或者调…深度学习模型训练过程中经常遇到预测的结果集中在某个值而且在学习的过程中会变样例如下。 主要有如下解决方案
1、更换relu -tanh 或者其他激活函数
2、更改随机种子估计是没有初始化好或者调整学习率试试
3、输入的数据没有标准化考虑对输入的特征进行分bin or标准化处理
4、增加drop out ,增加 batch normal增加正则等
class ModelBNDropout(nn.Module): def __init__(self, input_size, class_nums2): super(ModelBNDropout, self).__init__() self.modelnn.Sequential() #序列化模块构造的神经网络 # 第一层 self.model.add_module(linear1,nn.Linear(input_size, 1024 )) #卷积层 self.model.add_module(relu1, nn.ReLU()) #激活函数使用了ReLu self.model.add_module(bnorm1, nn.BatchNorm1d(1024)) self.model.add_module(drop1, nn.Dropout())
# L1 0 # L2 0 # for name,param in model.named_parameters(): # if bias not in name: # L1 torch.norm(param, p1) * 1e-5 # L2 torch.norm(param, p2) * 1e-3 5、使用其他模型的参数进行权重初始化
model torch.load(data/ckpt_xxx.model)
model_drop.fc1 model.fc1 model_drop.fc2 model.fc2 model_drop.fc3 model.fc3 model_drop.fc4 model.fc4 model_drop.fc5 model.fc5
6、设置初始化函数
# # for m in model_drop.modules(): # # if isinstance(m, nn.Linear): # # print(before,m.weight) # # torch.nn.init.kaiming_uniform_(m.weight) # # print(after,m.weight) # # nn.init.normal_(m.weight, mean0, std1) # # nn.init.zeros_(m.bias) # print(model_res)
7、模型是不是在输出的时候加了一层sigmoid激活函数
8、终极大法
获取模型的子模块进行预测看看哪一步出现 or 在每一层layer打印日志看看在哪个层出现数据集中的情况修该对应的层的网络结构or激活函数。
model_drop ModelDropOut(input_size, class_nums2) model_drop model_drop.to(device)
for m in model_drop.modules(): print(m)