网站开发需要用到的技术,广州海珠区好玩的地方,有的网站打不开 但别人电脑能打开,网上教育培训机构哪家好假设有一个dropout网络net#xff0c;训练过程中用测试集进行了测试#xff0c;接着将该网络进行了保存
torch.save(net.state_dict(), path)
然后将保存的网络加载出来#xff1a;
netclass_net() # 先定义net的结构
net.load_state_dict(torch.load(path))
接着用同样…假设有一个dropout网络net训练过程中用测试集进行了测试接着将该网络进行了保存
torch.save(net.state_dict(), path)
然后将保存的网络加载出来
netclass_net() # 先定义net的结构
net.load_state_dict(torch.load(path))
接着用同样的测试集进行测试发现测试结果和保存时的结果不一致这是因为dropout网络会对神经元进行随机失活因此测试结果也会不一致。解决方法是在测试函数eval()中设置随机种子
torch.manual_seed(42)
if self.cuda:torch.cuda.manual_seed(42)
注意一点不能在dropout网络的训练函数/前向传播函数forward()中设置随机种子否则每次前向传播失活的神经元都是一样的失去了dropout的随机性。而在测试函数eval()中设置随机种子并不影响网络的训练因为eval()函数不包含网络的训练过程。