Skip to content
This repository has been archived by the owner on Apr 13, 2023. It is now read-only.

_, cd_preds1 = torch.max(cd_preds, 1) #23

Open
yiyi-today opened this issue Nov 20, 2021 · 4 comments
Open

_, cd_preds1 = torch.max(cd_preds, 1) #23

yiyi-today opened this issue Nov 20, 2021 · 4 comments

Comments

@yiyi-today
Copy link

您好,我对您的论文非常感兴趣。由于我刚入门,在理解计算预测图时遇到了一些问题,如标题,cd_preds是模型处理得到的结果,cd_preds的维度是[1(B), 2(C), 256(H), 256(W)],torch.max(cd_preds, 1)是取cd_preds在维度【2(C)】上的最大值,得到了维度为[1,256,256]最大值_和索引号(非0即1)cd_preds1,并将cd_preds1作为最终的预测结果。请问上述我的解析正确吗?cd_preds1作为最终的预测结果的依据是什么?非常希望得到您的回答,谢谢!

@likyoo
Copy link
Owner

likyoo commented Nov 20, 2021

您好,您的描述的正确的。
因为目标任务是一个二分类任务,所以我们的输出维度是[1(B), 2(C), 256(H), 256(W)] (当然也可以是[1(B), 1(C), 256(H), 256(W)] 。其中,每一个位置上的两个值代表对两种类别的预测值。在训练过程中,后面会接一个softmax + ce_loss。在预测过程中,这个softmax可以直接省略掉。这是很常见的设置和用法。

@yiyi-today
Copy link
Author

您好,您的描述的正确的。 因为目标任务是一个二分类任务,所以我们的输出维度是[1(B), 2(C), 256(H), 256(W)] (当然也可以是[1(B), 1(C), 256(H), 256(W)] 。其中,每一个位置上的两个值代表对两种类别的预测值。在训练过程中,后面会接一个softmax + ce_loss。在预测过程中,这个softmax可以直接省略掉。这是很常见的设置和用法。

您好,非常感谢您的及时回答。也就是说,在做二分类时,只要CNN网络的输出维度是[1(B), 2(C), 256(H), 256(W)] ,在通道【2(C)】中每一个位置代表对两种类别的预测值;当CNN网络的输出维度是[1(B), 1(C), 256(H), 256(W)] ,取一个阈值可以决定是否变化。请问输出通道选择2(C)或者1(C)有什么区别吗?

@likyoo
Copy link
Owner

likyoo commented Nov 20, 2021

就操作来说,损失函数前的非线性函数有所区别,softmax或者sigmoid。
至于优缺点的话,相关的分析也不少,您可以查找一下。

@yiyi-today
Copy link
Author

就操作来说,损失函数前的非线性函数有所区别,softmax或者sigmoid。 至于优缺点的话,相关的分析也不少,您可以查找一下。

谢谢,非常感谢您的回答,祝您生活愉快!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants