peach-xiao

Results 9 issues of peach-xiao

我想使用Resnet的模型做实验,但是我看到Passleseg提供的是resnet-vc版本,我只想用最原始的实现和模型,就和pytorch库timm一样的,不需要变体,因为我其他模型也没有使用变体。请问哪里可以下载paddlse代码的实现resnet和相应的预训练模型.pdparams呢?因为不一致的话加载模型会出错。 感谢!!!

您好!我在使用PaddleViT设计自己的模型,对于实验的结果我遇到了一些问题,希望可以得到帮助。首先,因为PaddleViT和PaddleSeg计算评价指标的代码我都仔细看了,是一样的。可以查阅https://github.com/BRIDL/PaddleViT/blob/develop/semantic_segmentation/src/utils/metrics.py, 以下图片是我在数据集上的实验结果,框起来的是我用PaddleViT平台跑出来的实验结果。其余的FCN、PSPNet等模型是我自己的代码的结果。 ![image](https://user-images.githubusercontent.com/40911688/175894733-d9dbd021-194e-4bb6-a9ee-9fccf01cf605.png) OA和Miou的计算公式是: ![image](https://user-images.githubusercontent.com/40911688/175895809-c39411e2-161b-4be6-b51b-80ee97e51d94.png) ![image](https://user-images.githubusercontent.com/40911688/175895849-28f52bc7-08f2-458b-a4af-52008b61f238.png) 按理说mIOU值大的OA也应该高才对,从我的实验结果在的确是mIOU达到了最高,但是OA的指标是最低的,这很明显有问题 问题1:paddleseg/utils/metrics.py中的函数:def class_measurement: --- mean_acc是不是论文中常见的OA指标?如果不是,应该怎样通过三个参数intersect_area, pred_area, label_area实现呢 ![image](https://user-images.githubusercontent.com/40911688/175897626-087abda4-7ab2-45b0-977f-c3be127145e7.png) ![image](https://user-images.githubusercontent.com/40911688/175896725-1860a8c4-6957-41ce-8883-222fc50b92f3.png) 问题2:能简单解释一下是Paddle怎么计算评价指标的吗?代码显示mIOU, OA都没有根据混淆矩阵计算,而是使用的三个参数: intersect_area, pred_area, label_area进行计算,对应于混淆矩阵应该怎样理解这三个参数呢,如intersect_area就是混淆矩阵对角线素元素和np.diag(hist),其他的 hist.sum(axis=1) ,hist.sum(axis=0)又是怎么对应的呢? 问题3:以下是我在验证过程中使用的代码,是我的计算方式出问题了吗?上图中自己实现的一些模型FCN,PSPNet(没有使用paddle平台)等模型虽然mIOU的很低,但是mIOU相对较高?而我使用paddleViT运行的模型mIOU都达到了72.99,OA却只有85.73的情况?我想整合这两个评价指标。 在验证过程中调用评价指标函数 ![image](https://user-images.githubusercontent.com/40911688/175902317-e3969c4b-5ede-4a51-86ab-3bd26173e6be.png) 评价函数具体实现:通过混淆矩阵计算 ![image](https://user-images.githubusercontent.com/40911688/175901659-c46f522d-9b79-43c5-9078-d629d85ca33b.png) ![image](https://user-images.githubusercontent.com/40911688/175901732-8654f9e9-80ec-415b-a5f5-c05dabfc1000.png) ![image](https://user-images.githubusercontent.com/40911688/175901808-5047d2e3-9662-4883-8fec-e2402df0fde8.png) ![image](https://user-images.githubusercontent.com/40911688/175901831-353b67b2-278b-4385-9a95-83016e0a43b2.png)...

question

我在使用PSPNet运行自己的数据集,实在是没有找到为什么optimizer.step()这里会出现TypeError: 'str' object is not callable错误,我尝试着将Image和label的值都打印出来查看了,里面是有值的,计算的loss也是有值的,这可能是哪里出现了问题呢?希望可以得到帮助 注意:我没有改动任何和模型有关的文件,仅仅修改了配置相应的.yml文件和加载数据集的.py文件,下面是报错的信息: ![image](https://user-images.githubusercontent.com/40911688/174019955-7d45595a-c704-4c45-a3d7-9007039eb7d6.png) ![image](https://user-images.githubusercontent.com/40911688/174020003-00402134-2491-4b4b-9407-d381d8890258.png) 这是我加载的数据集文件(已做修改) ![image](https://user-images.githubusercontent.com/40911688/174020226-8da05d11-f317-48fe-9368-ab6cc210ec52.png) ![image](https://user-images.githubusercontent.com/40911688/174020328-4de151cc-cc4f-4e76-b195-aaac63102f48.png) 配置文件pspnet.yml信息 ![image](https://user-images.githubusercontent.com/40911688/174020668-edde9de4-8225-417c-a5e0-969643a3d96f.png) ![image](https://user-images.githubusercontent.com/40911688/174020749-1c36f466-baab-4358-a460-9f4847dea4fe.png) 期待您的回复,万分感谢!!!

question

我想用PaddleVIT做语义分割任务,有些backbone并没有提供预训练模型Backbone_checkpoint,比如Swin_Tiny,Swin_Small, 但是我在paddleClas有找到这些模型,在加载的时候出现了对于不匹配的问题,请问采用的是什么解决方案呢? ![image](https://user-images.githubusercontent.com/40911688/167301797-a9a0312c-2ebc-435a-a3e9-1944a2f99e2c.png)

enhancement
Segmentation

很多论文中为了解释模型的可行性,采用了可视化模型输出的某一层特征图,使用热力图显示,注意基于TransFormer和CNN的模型可视化方法有所不同,PaddleVIT能否集成这些可视化方案呢? 目前已有人实现了这些方法,可以参考这些github连接: https://github.com/hila-chefer/Transformer-Explainability https://github.com/jacobgil/pytorch-grad-cam ![image](https://user-images.githubusercontent.com/40911688/167298773-f7dfe245-5882-4070-a61c-5e11aabe8304.png)

enhancement

您好!在使用PaddleVIT用于语义分割的过程中,我遇到了问题,希望可以得到您的帮助: 我研究了train.py在训练过程中保存的部分代码,采用的策略是根据训练的 Iter 次数(如:2000次保存一次模型),然后根据配置保留最新的10个模型,我有一个疑问,在训练过程中模型其实很有可能就已经达到最优了,再继续训练会导致过拟合的问题。也就是说其实最后保留的10个模型里面,很有可能在验证集上的结果不是最优的甚至更差,这样并不能在验证集反映一个模型的好坏。 采用这样的策略:在训练集上训练一次,然后在验证集上验证一次,若比之前的效果好,就更新最好的模型,训练完成后也就保留在验证集上评价指标最好的模型,这样的话是不是会更好? 但是我发现,不管是一些框架,或是一些顶级期刊论文中提供的代码,他们采用的训练方案和你们一样的保留模型的方法,如:迭代次数160k,然后训练完成后用最后的模型进行验证(但是我认为最后的模型可能不是最好的)。希望可以得到相应的解释,非常感谢! ![image](https://user-images.githubusercontent.com/40911688/167298246-8d6619c2-3ba7-45c8-88be-f2bb68a58a6a.png)

Segmentation

您好!我在使用PaddleViT语义分割用于自己的数据集的时候遇到了问题,希望您可以抽空帮我解决一下 1.使用自己的数据集用于语义分割,或者Cityscapes,ADE20K等数据集,lable标签载入应该是彩色的图片,还是已经将颜色(如0,255,255)转换为对应类别(如类别1,)后的黑色图片呢?目前我没有在代码中找到label标签颜色和类别转换的代码。 2.为什么使用数据增强策略,在模型是val的时候,图片进行了数据增强,而label没有对应的也进行相应的变换。而是直接open图片?如在semantic_segementation/src/datasets/ade.py和vaihingen.py if self.mode == 'val': img, _ = self.transforms(img=image_path) # --> img进行相应的缩放,裁剪等数据增强策略 label = np.asarray(Image.open(label_path)) #--> label为什么不做对应的数据增强,如缩放,裁剪 label = label - 1 label = label[np.newaxis, :, :] return...

Segmentation

我想计算基于Transformer的一些分割模型的FLOPs用于评估实验模型的性能, 使用的是Paddle.flops来计算,但是出现了一些无法统计的情况( Treat it as zero FLOPs),是不是这样计算出来的FLOPs的值是不准确的呢?可以如何解决? 我看到的是需要自己定义用于实现对自定义网络层的统计,也就是参数custom_ops,目前只找到了官方提供的用于计算paddle.nn.SyncBatchNorm的方法, 但是我不知道怎么设计用于计算.MaxPool2D、.LayerNorm、.GroupNorm、 .GELU、 Embedding这些函数,如果不计算的话,最后得出的FLOPs值应该有较大的差异,可以帮我解决这个问题吗? ![image](https://user-images.githubusercontent.com/40911688/186092880-ef5be663-2002-43d3-b2b7-53adffc7bcb3.png) ![image](https://user-images.githubusercontent.com/40911688/186093268-93eabde2-c704-47de-87ed-a6207f0f47a4.png) 下面是的的结果: ![image](https://user-images.githubusercontent.com/40911688/186094458-d3bd22a2-1f4c-4029-b778-ff62e65173e3.png) ![image](https://user-images.githubusercontent.com/40911688/186094513-a00c6e37-000f-4745-b73b-3225333d3028.png) ... ![image](https://user-images.githubusercontent.com/40911688/186094607-c5d2ce66-3f95-4956-8d9e-8edd8036c615.png)

DFN边界模块用的损失函数是FocalLoss,您给的代码中没有提供这个损失函数,如果你实现了的话可以提供一下吗?