标签:training dropout self pytorch train model 模型
今天学习pytorch,发现模型中间加了一层dropout层:
x = F.dropout(x, training=self.training)
大家知道,dropout层的作用就是将前面一层神经元的元素以一定概率置为0,减少模型对于某些特征的依赖,提高模型的泛化性。这个training=self.training
是啥意思呢。要知道我们的模型都是继承自nn.Module
类,这个类在训练的时候会使得self.training
为true,此时我们就正常使用dropout,而在测试的时候,self.training
为false,此时关闭dropout层。
那我们怎么改变模型的状态呢,我们咋知道模型处于训练状态还是测试状态呢,这里就需要用到两个函数:train()和eval()
假设说我们new的模型叫model,那么我们训练和测试应该是这样的:
model.train() #模型处于训练状态
训练代码…………
model.eval() #模型处于测试状态
测试代码…………
标签:training,dropout,self,pytorch,train,model,模型 来源: https://blog.csdn.net/cobracanary/article/details/120577172
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。