Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
models
提交
2939c8d8
M
models
项目概览
PaddlePaddle
/
models
1 年多 前同步成功
通知
222
Star
6828
Fork
2962
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
602
列表
看板
标记
里程碑
合并请求
255
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
models
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
602
Issue
602
列表
看板
标记
里程碑
合并请求
255
合并请求
255
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
2939c8d8
编写于
11月 16, 2021
作者:
littletomatodonkey
提交者:
GitHub
11月 16, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix bugs by lml (#5374)
上级
b861c99a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
3 addition
and
3 deletion
+3
-3
docs/lwfx/ThesisReproduction_CV.md
docs/lwfx/ThesisReproduction_CV.md
+3
-3
未找到文件。
docs/lwfx/ThesisReproduction_CV.md
浏览文件 @
2939c8d8
...
...
@@ -680,7 +680,7 @@ torch.stack([
*
如果遇到Paddle不包含的OP或者API,比如(1) 如果是某些算法实现存在调用了外部OP,而且Paddle也不包含该OP实现;(2) 其他框架存在的API或者OP,但是Paddle中没有这些OP。此时:
*
对于Paddle资深用户来说,可以尝试使用Paddle的自定义算子功能,存在一定的代码开发量。
*
对于初学者来说,可以给Paddle提
[
ISSUE
](
https://github.com/PaddlePaddle/Paddle/issues/new/choose
)
,列出Paddle不支持的实现,Paddle开发人员会根据优先级进行实现。
*
PaddlePaddle与PyTorch对于不同名称的API,实现的功能可能是相同的,复现的时候注意,比如
[
paddle.optimizer.lr.StepDecay
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/optimizer/lr/StepDecay_cn.html#stepdecay
)
与
[
torch.optim.lr_scheduler.StepLR
](
https://pytorch.org/docs/stable/generated/torch.optim.lr_scheduler.StepLR.html#torch.optim.lr_scheduler.StepLR
)
。
*
PaddlePaddle与PyTorch对于不同名称的API,实现的功能可能是相同的,复现的时候注意,比如
[
paddle.optimizer.lr.StepDecay
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/optimizer/lr/StepDecay_cn.html#stepdecay
)
与
[
torch.optim.lr_scheduler.StepLR
](
https://pytorch.org/docs/stable/generated/torch.optim.lr_scheduler.StepLR.html#torch.optim.lr_scheduler.StepLR
)
,关于PaddlePaddle与PyTorch更多API的映射关系可以参考:
[
API映射表
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/08_api_mapping/pytorch_api_mapping_cn.html
)
。
*
对于PaddlePaddle来说,通过
`paddle.set_device`
函数(全局)来确定模型结构是运行在什么设备上,对于torch来说,是通过
`model.to("device")`
(局部)来确定模型结构的运行设备,这块在复现的时候需要注意。
...
...
@@ -689,7 +689,7 @@ torch.stack([
#### 4.2.1 API
*
对于
`paddle.nn.Linear`
层的weight参数,PaddlePaddle与PyTorch的保存方式不同,在转换时需要进行转置,示例代码可以参考
[
AlexNet权重转换脚本
](
https://github.com/littletomatodonkey/AlexNet-Prod/blob/e3855e0b1992332c2765ccf627d0c5f5f68232fe/pipeline/weights/torch2paddle.py#L19
)
。
*
`paddle.nn.BatchNorm2D`
包含4个参数
`weight`
,
`bias`
,
`_mean`
,
`_variance`
,torch.nn.BatchNorm2d包含4个参数
`weight`
,
`bias`
,
`running_mean`
,
`running_var`
,
`num_batches_tracked`
,
`num_batches_tracked`
在PaddlePaddle中没有用到,剩下4个的对应关系为
*
`paddle.nn.BatchNorm2D`
包含4个参数
`weight`
,
`bias`
,
`_mean`
,
`_variance`
,torch.nn.BatchNorm2d包含4个参数
`weight`
,
`bias`
,
`running_mean`
,
`running_var`
,
`num_batches_tracked`
。 其中
,
`num_batches_tracked`
在PaddlePaddle中没有用到,剩下4个的对应关系为
*
`weight`
->
`weight`
*
`bias`
->
`bias`
*
`_variance`
->
`running_var`
...
...
@@ -831,7 +831,7 @@ w.backward()
*
确认下reader的预处理中是否会出现box(或mask)为空的情况
*
模型结构中计算loss的部分是否有考虑到正样本为0的情况
*
也可能是某个API的数值越界导致的,可以测试较小的输入是否还会出现nan。
*
如果训练过程中
如果
出现不收敛的情况,可以
*
如果训练过程中出现不收敛的情况,可以
*
简化网络和数据,实验是否收敛;
*
如果是基于原有实现进行改动,可以尝试控制变量法,每次做一个改动,逐个排查;
*
检查学习率是否过大、优化器设置是否合理,排查下weight decay是否设置正确;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录