首页 PaddleCV 帖子详情
关于语义分割辅助函数的问题?
收藏
快速回复
PaddleCV 问答语义分割 1163 10
关于语义分割辅助函数的问题?
收藏
快速回复
PaddleCV 问答语义分割 1163 10

在读了BiSeNet—V2 后,发现论文在 训练 过程中,将每个阶段的特征图与标签图像用softmax+cross_entropy做损失函数调整,然后在测试过程中去掉这一部分,请问这是如何实现的?

其实就是想问训练过程中的一些操作要在测试阶段移除是怎么实现的,有什么api吗?

0
收藏
回复
全部评论(10)
时间顺序
AIStudio810258
#2 回复于2020-11

测试过程只进行forward计算,也不用算loss啊

0
回复
AIStudio810258
#3 回复于2020-11

我看了下,那三部分loss是1:1:1加和在一起的。测试时,如果为了做对比的话,可以打印时分别打印三部分loss

0
回复
白加黑127
#4 回复于2020-11
我看了下,那三部分loss是1:1:1加和在一起的。测试时,如果为了做对比的话,可以打印时分别打印三部分loss

请问大佬,我看论文中下面4个1,3,4,5阶段的Seg Head是只有在训练阶段才使用,在测试阶段就不用了。

然后,我实现的时候是这样做的,如下图所示,标红的是4个阶段的Seg Head,但在测试阶段该如何舍去呢?测试program的代码是:test_program = fluid.default_main_program().clone(for_test=True) 直接将 训练program复制。请问在测试过程 下面这4个SegHead不会也复制到测试program吗?还是像您说的,分别打印这几部分的loss,在测试阶段只关注最后的loss,不关注其他4个。

不知我的描述是否有误,还是没有弄清测试program与训练program的区别?

0
回复
m
mar836924042
#5 回复于2020-11

那个Seg Head,难道不是在网络模型的代码里加上一个判断是train还是eval的条件其实就解决了,如果是eval的情况下,就不使用

0
回复
AIStudio810258
#6 回复于2020-11
[图片]请问大佬,我看论文中下面4个1,3,4,5阶段的Seg Head是只有在训练阶段才使用,在测试阶段就不用了。 然后,我实现的时候是这样做的,如下图所示,标红的是4个阶段的Seg Head,但在测试阶段该如何舍去呢?测试program的代码是:test_program = fluid.default_main_program().clone(for_test=True) 直接将 训练program复制。请问在测试过程 下面这4个SegHead不会也复制到测试program吗?还是像您说的,分别打印这几部分的loss,在测试阶段只关注最后的loss,不关注其他4个。 不知我的描述是否有误,还是没有弄清测试program与训练program的区别? [图片]
展开

在动态图模型里就用 self.training 判断

0
回复
AIStudio810258
#7 回复于2020-11

静态图我没怎么用过(哭脸)

动态图那个我是查了文档,看了文档上链接的paddle源码找到的

0
回复
screamdw
#8 回复于2020-11

留下了没有技术的眼泪

0
回复
水水水的老师
#9 回复于2020-11
我看了下,那三部分loss是1:1:1加和在一起的。测试时,如果为了做对比的话,可以打印时分别打印三部分loss

正解

0
回复
水水水的老师
#10 回复于2020-11
静态图我没怎么用过(哭脸) 动态图那个我是查了文档,看了文档上链接的paddle源码找到的

静态图越来越日渐式微了

0
回复
AIStudio810258
#11 回复于2020-11
静态图越来越日渐式微了

同感,还是动态图便于调试、展示。运行效率另有别的方法提升

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户