qingshi9974 / ICLR2024-FTIC

[ICLR2024] FTIC: Frequency-aware Transformer for Learned Image Compression
35 stars 1 forks source link

测试相关问题 #3

Closed MichTheEncoder closed 3 months ago

MichTheEncoder commented 4 months ago

我尝试使用您提供的代码和预训练模型进行测试,但是遇到了一些BUG导致我无法正确测试出结果,我尝试解决这些问题但最终无能为力。

Traceback (most recent call last): File "/home/xxx/workspace/ICLR2024-FTIC/eval.py", line 4, in from models import FrequencyAwareTransFormer File "/home/xxx/workspace/ICLR2024-FTIC/models/init.py", line 1, in from .flic import FrequencyAwareTransFormer File "/home/xxx/workspace/ICLR2024-FTIC/models/flic.py", line 11, in from compressai import range_coder ImportError: cannot import name 'range_coder' from 'compressai' (/home/xxx/anaconda3/envs/alchemy/lib/python3.12/site-packages/compressai/init.py)

Traceback (most recent call last): File "/home/xxx/workspace/ICLR2024-FTIC/eval.py", line 158, in main(sys.argv[1:]) File "/home/xxx/workspace/ICLR2024-FTIC/eval.py", line 98, in main for k, v in checkpoint["state_dict"].items():


KeyError: 'state_dict'

Traceback (most recent call last):
  File "/home/xxx/workspace/ICLR2024-FTIC/eval.py", line 159, in <module>
    main(sys.argv[1:])
  File "/home/xxx/workspace/ICLR2024-FTIC/eval.py", line 101, in main
    net.load_state_dict(dictory,strict=True)
  File "/home/xxx/anaconda3/envs/alchemy/lib/python3.12/site-packages/compressai/models/base.py", line 88, in load_state_dict
    return nn.Module.load_state_dict(self, state_dict, strict=strict)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/xxx/anaconda3/envs/alchemy/lib/python3.12/site-packages/torch/nn/modules/module.py", line 2153, in load_state_dict
    raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for FrequencyAwareTransFormer:
        Missing key(s) in state_dict: "bound.bound".

Traceback (most recent call last):
  File "/home/xxx/workspace/ICLR2024-FTIC/eval.py", line 159, in <module>
    main(sys.argv[1:])
  File "/home/xxx/workspace/ICLR2024-FTIC/eval.py", line 114, in main
    out_enc = net.compress(x_padded)
              ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/xxx/workspace/ICLR2024-FTIC/models/flic.py", line 492, in compress
    encoder = RangeEncoder(output[:-4] + '.bin')
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: __init__(): incompatible constructor arguments. The following argument types are supported:
    1. compressai.ans.RansEncoder()

Invoked with: './ou.bin'
qingshi9974 commented 3 months ago

Sorry for the mistake. I updated "eval.py" and "flic.py" and you can now test with the latest code.

Note that we use the "RangeEncoder" and "RangeDecoder" from _rangecoder library rather than compressai during encoding y.