PyTorch踩坑记录1

1 model.eval()无法关闭dropout

因为model.eval()控制self.training参数,只有用nn.Dropout(0.5)声明才能在调用model.eval()后关闭,用F.dropout(x, p=0.5)是没办法自动关闭的,需要手动把self.training的参数传入到F.dropout()里才行。

网上查到是因为model.eval()会影响继承nn.module类的self.方法的训练和测试,但是F.dropout更像是一个函数没继承nn,module。

另外,回归模型在后面几层应该避免使用dropout,最多在浅层使用。

2 BCEloss归一化

在tf2中BCEloss没有归一化,但是在torch中的损失函数是归一化了的。

相关推荐
这张生成的图像能检测吗16 分钟前
(论文速读)GraphSAGE:大型图的归纳表示学习
人工智能·深度学习·机器学习·图神经网络·无监督学习
维度攻城狮5 小时前
ros2参数通信案例
开发语言·windows·python·ros2·参数通信
深圳佛手5 小时前
不用智能体开发框架,如何调用工具?
前端·python
清水白石0085 小时前
Python 与尾递归:为何不优化?如何优雅绕过?
开发语言·python
zhengfei6115 小时前
AI渗透工具——AI驱动的自动化渗透测试框架 | 基于 Model Context Protocol (MCP) 架构
人工智能·架构·自动化
王大傻09285 小时前
使用python for循环与ord() + chr()实现字符串加密
开发语言·python
袁庭新6 小时前
2025年终总结,智启
人工智能·aigc
540_5406 小时前
ADVANCE Day35
人工智能·python·深度学习
百***07456 小时前
Claude Opus 4.5 场景化实战指南:全链路赋能开发,提升效率翻倍
人工智能·gpt·开源
DeepVis Research6 小时前
【2025深度学习全家桶】Android Studio Otter + CUDA 11.8/12.1 离线安装包 | AI开发环境一键搞定
pytorch·深度学习·android studio·cuda·stablediffusion