药物副作用预测网络-尝试处理降低损失值
2023-12-18 05:53:21
参考资料了解了一些损失值居高不下的原因,
一一进行尝试
1.调整batchsize,初始设置了512,疑似过大,调整为32与16进行尝试
依然稳定在0.32左右,没有较大改变
2.尝试变更初始化矩阵
选择初始化0、均值、正态进行尝试
class MLP(torch.nn.Module):
def __init__(self,n_feature,n_hidden,num_labels,dropout = 0.5):
super(MLP, self).__init__()
self.dropout = torch.nn.Dropout(dropout)
# 定义隐藏层和输出层
self.hidden_1 = torch.nn.Linear(n_feature, n_hidden)
init.normal_(self.hidden_1.weight, mean=0, std=0.01) # 正态分布初始化隐藏层权重
self.bn1 = torch.nn.BatchNorm1d(n_hidden)
# 逐层减少参数数量,有助于防止过拟合
self.hidden_2 = torch.nn.Linear(n_hidden, n_hidden // 2)
init.normal_(self.hidden_2.weight, mean=0, std=0.01) # 正态分布初始化隐藏层权重
self.bn2 = torch.nn.BatchNorm1d(n_hidden // 2)
self.hidden_3 = torch.nn.Linear(n_hidden // 2, n_hidden // 4)
init.normal_(self.hidden_3.weight, mean=0, std=0.01) # 正态分布初始化隐藏层权重
self.bn3 = torch.nn.BatchNorm1d(n_hidden // 4)
self.hidden_4 = torch.nn.Linear(n_hidden // 4, n_hidden // 8)
init.normal_(self.hidden_4.weight, mean=0, std=0.01) # 正态分布初始化隐藏层权重
self.bn4 = torch.nn.BatchNorm1d(n_hidden // 8)
self.out = torch.nn.Linear(n_hidden // 8, num_labels)
#前向
# 传播
def forward(self, x):
x = F.relu(self.hidden_1(x))
x = self.dropout(self.bn1(x))
x = F.relu(self.hidden_2(x))
x = self.dropout(self.bn2(x))
x = F.relu(self.hidden_3(x))
x = self.dropout(self.bn3(x))
x = F.relu(self.hidden_4(x))
x = self.dropout(self.bn4(x))
x = self.out(x)
return x
基本没有改善
疑似模型结构或特征提取有异常
文章来源:https://blog.csdn.net/qq_40285589/article/details/135052860
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!