InterDigitalInc / CompressAI

A PyTorch library and evaluation platform for end-to-end compression research
https://interdigitalinc.github.io/CompressAI/
BSD 3-Clause Clear License
1.19k stars 232 forks source link

evalutation error on my own dadaset #22

Closed lizhuding closed 3 years ago

lizhuding commented 3 years ago

Hi , I trained a model on my own dataset, i met such error when i evalutate the model ,what's wrong about it?

julie@loaclhost compressai % python -m compressai.utils.eval_model checkpoint /Users/julie/compressai/data/test/ -a bmshj2018-factorized -p checkpoint_best_loss.pth.tar Traceback (most recent call last): File "/Users/julie/opt/anaconda3/envs/torch/lib/python3.8/runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "/Users/julie/opt/anaconda3/envs/torch/lib/python3.8/runpy.py", line 87, in _run_code exec(code, run_globals) File "/Users/julie/compressai/compressai/utils/eval_model/main.py", line 286, in main(sys.argv[1:]) File "/Users/julie/compressai/compressai/utils/eval_model/main.py", line 264, in main model = load_func(*opts, run) File "/Users/julie/compressai/compressai/utils/eval_model/main.py", line 145, in load_checkpoint return architectures[arch].from_state_dict(torch.load(checkpoint_path)).eval() File "/Users/julie/compressai/compressai/models/priors.py", line 184, in from_state_dict N = state_dict["g_a.0.weight"].size(0) KeyError: 'g_a.0.weight'

jbegaint commented 3 years ago

Hi, thanks for the report! Did you train a model based on the bmshj2018-factorized architecture? or the toy network in the example training file? Can you run print(torch.load("checkpoint_best_loss.pth.tar").keys()) ?

lizhuding commented 3 years ago

Hi, thanks for the report! Did you train a model based on the bmshj2018-factorized architecture? or the toy network in the example training file? Can you run print(torch.load("checkpoint_best_loss.pth.tar").keys()) ?

Thanks so much for your quick reply! I trained the model in the example training file: python3 examples/train.py -d /path/to/my/image/dataset/ --epochs 300 -lr 1e-4 --batch-size 16 --save , just replace my own dataset; So what should i use about the argument "-a ?" when i run the :"print(torch.load("checkpoint_best_loss.pth.tar").keys())", got "dict_keys(['epoch', 'state_dict', 'loss', 'optimizer', 'aux_optimizer'])"

jbegaint commented 3 years ago

ok thanks, so the toy model in the example training file is not defined in the reference compressai models. If you want to use compressai.utils.eval_model you need to use one of the implemented architectures or add support for a custom architecture.

zhchma51 commented 2 years ago

ok thanks, so the toy model in the example training file is not defined in the reference compressai models. If you want to use compressai.utils.eval_model you need to use one of the implemented architectures or add support for a custom architecture.

Hi, I trained the model in the following command: python3 examples/train.py -m bmshj2018-factorized -d images \ --batch-size 16 -lr 1e-4 --save --cuda bmshj2018-factorized is the default architecture. However, when I evaluate the model with the command: python -m compressai.utils.eval_model checkpoint images/test \ -a bmshj2018-factorized -p checkpoint.pth.tar I got the error: File "/project/6003167/compressai/compressai/models/google.py", line 285, in from_state_dict N = state_dict["g_a.0.weight"].size(0) KeyError: 'g_a.0.weight'