Closed ChrisMengxl closed 2 years ago
1) 需要设置Arch.class_num. 2)提示的是一个warning; 如果类别不为1000的话,都会收到这个warning. 官方提供的预训练模型是1000类的; 如果修改了类别,则最后一层fc的参数size不匹配,无法load
建议使用Arch.class_num,Global.class_num字段之后将不再使用。 报错是因为,在使用“CutmixOperator”时,需要先对标签处理为soft label,因此需要获取分类数。此处的分类数是根据Arch.class_num字段所获取的。
建议使用Arch.class_num,Global.class_num字段之后将不再使用。 报错是因为,在使用“CutmixOperator”时,需要先对标签处理为soft label,因此需要获取分类数。此处的分类数是根据Arch.class_num字段所获取的。
十分十分感谢。
1) 需要设置Arch.class_num. 2)提示的是一个warning; 如果类别不为1000的话,都会收到这个warning. 官方提供的预训练模型是1000类的; 如果修改了类别,则最后一层fc的参数size不匹配,无法load
十分十分感谢。
欢迎您使用PaddleClas并反馈相关问题,非常感谢您对PaddleClas的贡献! 提出issue时,辛苦您提供以下信息,方便我们快速定位问题并及时有效地解决您的问题:
PaddleClas版本以及PaddlePaddle版本:PaddleClas 2.3 和PaddlePaddle 2.1.2
涉及的其他产品使用的版本号:如您在使用PaddleClas的同时还在使用其他产品,如PaddleServing、PaddleInference等,请您提供其版本号
训练环境信息:——Aistudio a. 具体操作系统 Linux b. Python版本号 Python3.7
完整的代码(相比于repo中代码,有改动的地方)、详细的错误信息及相关log:
使用 DataAugment/ResNet50_Cutmix.yaml 模板,但类别67类, Global: checkpoints: null pretrained_model: null output_dir: ./output/ device: gpu save_interval: 50 eval_during_train: True eval_interval: 10 epochs: 300 print_batch_step: 10 use_visualdl: True class_num: 67 ...... Arch: --此处没有设置Arch.class_num: 67 ,但是全局设置class_num: 67 name: ResNet50
[2022/01/16 18:51:04] root ERROR: Please set "Arch.class_num" in config if use "CutmixOperator". Traceback (most recent call last): File "tools/train.py", line 31, in
engine = Engine(config, mode="train")
File "/home/aistudio/PaddleClas/ppcls/engine/engine.py", line 121, in init
self.config["DataLoader"], "Train", self.device, self.use_dali)
File "/home/aistudio/PaddleClas/ppcls/data/init.py", line 112, in build_dataloader
batch_ops = create_operators(batch_transform, class_num)
File "/home/aistudio/PaddleClas/ppcls/data/init.py", line 57, in create_operators
op = op_func(param)
File "/home/aistudio/PaddleClas/ppcls/data/preprocess/batch_ops/batch_operators.py", line 117, in init
raise Exception(msg)
Exception: Please set "Arch.class_num" in config if use "CutmixOperator".**
问题是,DataAugment/ResNet50_Baseline.yaml 设置全局class_num: 67可以,为啥ResNet50_Cutmix.yaml 不可以用全局?
另外,若设置Arch.class_num: 67 则提示: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/layers.py:1301: UserWarning: Skip loading for fc.bias. fc.bias receives a shape [1000], but the expected shape is [67].