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中的损失函数是归一化了的。

相关推荐
水如烟几秒前
孤能子视角:“数学“,哥德尔边界动力学分析
人工智能
摸鱼仙人~2 分钟前
Agent 意图识别:从传统 NLU 到 LLM 驱动的范式变革
人工智能·深度学习
Narrastory5 分钟前
给数据“做减法”:PCA与UMAP详解与代码实现
人工智能·数据分析
kevin_kang6 分钟前
技术选型背后的思考:为什么选择Next.js + FastAPI + LangChain
人工智能
belldeep7 分钟前
python:markdown + python-docx 将 Markdown 文件格式转为 Word 文档
python·word·markdown·docx
了了侠8 分钟前
也论三个数字化与Palantir本体论
人工智能·数字化转型·业务架构·业务建模·本体论·palantir
kevin_kang10 分钟前
三层架构设计:前端+业务+AI层的职责划分
人工智能
yanghuashuiyue15 分钟前
deepseek本地部署
人工智能·自然语言处理·deepseek
不惑_15 分钟前
通俗理解神经网络的反向传播
人工智能·深度学习·神经网络
mubei-12319 分钟前
Self-RAG:通过自我反思学习检索、生成和批判
人工智能·llm·rag·检索增强生成