Wei Shengyu

Results 60 comments of Wei Shengyu

有可能,可以发一下配置文件看看

class_num的配置不对,要在Arch里面设置 https://github.com/PaddlePaddle/PaddleClas/blob/8765dadfbbfdec5fb9d3ee0dd43490848e6cb006/ppcls/configs/ImageNet/AlexNet/AlexNet.yaml#L20

> > class_num的配置不对,要在Arch里面设置 > > https://github.com/PaddlePaddle/PaddleClas/blob/8765dadfbbfdec5fb9d3ee0dd43490848e6cb006/ppcls/configs/ImageNet/AlexNet/AlexNet.yaml#L20 > > Arch里面设置也试过,但是还是报这个错,是不是有'pretrained_model'参数的原因呢?看不懂源码,所以只能来这里提问了。 你的训练跟预测都在Arch里这样设置过吗?这个跟pretrained_model没有关系。 你可以试试直接用训练时间短的模型,预测时在Arch里加上这个参数,看看还有没有报错

> 还是不行,我在train,export_model和infer的配置文件都在arch下配置了class_num参数,照样报这个错。并且如果训练的类别数小于5,配置文件中的 Metric: Train: - TopkAcc: topk: [1, 5] 这里还会报错 input of topk op must have >= 5 columns in axis of 1。 照理说类别的多少不同,训练出来的模型大小应该也不同吧,但是不管多少个类别的数据,训练出来的模型大小都是一致的,所以,怀疑参数没生效,训练出来的模型还是1000分类的模型。 麻烦传一个yaml文件,我定位一下问题。 btw,你现在用的是哪个分支的代码呢?是拉取的最新代码没错吧?

你好,你可以直接传一个yaml文件吗?这样方便复现。这个dict并不是paddleclas现有的部署方式。

> 另外,在训练过程中的eval阶段,如果验证数据集小于配置文件中设置的batch_size参数,那么会直接报错,错误如下: ![image](https://user-images.githubusercontent.com/44918749/166890930-ade5feb7-5dbf-45ce-bfae-403e3e840f69.png) > > 我的配置文件如下: ![image](https://user-images.githubusercontent.com/44918749/166891083-4965b780-7238-4b91-b3ce-b5835a497118.png) > > 我的验证集总共有20张图像 哦,如果验证集比较小可以把batchsize调小 上面class_num这个问题我验证一下

我用你提供的配置文件,没有能复现你的问题。修改class_num,导出的文件大小是不同的,当class_num设置为2时,模型大小约为94MB,当class_num为1000时,模型大小约为102MB。可以看出参数设置是有影响的。 当class_num为2且加载预训练模型时,会报warning: ![image](https://user-images.githubusercontent.com/19523330/166917724-d5517c4c-e44f-408f-bc6c-0fdc906f42aa.png) 可以看出,加载的时候,由于shape不同,最后一个fc层的参数加载失败了。另外,这个模型经过10个iter左右的训练,也是可以正常预测的。 建议你用PaddleClas最新的release/2.3的代码,用你的配置文件调试一下试试看。如果确认没有错误,再比较一下跟本地代码有什么差别。

> 拉取了最新的代码,问题解决了,谢谢。再请问一个问题,paddleclas支持earlystopping吗? 1.early stop可以直接手动停 2.PaddleClas训练时会保存best_model,对应eval指标最高的epoch

你好,请问你具体修改了什么代码呢?或者是运行了哪个脚本出现这个报错呢

https://github.com/PaddlePaddle/PaddleClas/pull/1851 可以看下这个PR 目前模型推理的部分和权重已经合入,训练的部分代码还在调试中,预计最近也会放出,欢迎持续关注。