使用compressai库定义自己的压缩模型,在进行压缩模型推理时,更新CDF需要添加model.update()
with torch.no_grad():
model.update()
out_enc = model.compress(x)
产生上述问题是因为在训练保存权重时,没有更新CDF,导致CDF表存在,却是空的,才会报错ValueError: Uninitialized CDFs. Run update() first,只需要在保存权重前更新CDF,即可解决。
model.update()
torch.save(model.state_dict(), save_model_path)
或者重写load_state_dict函数:
def load_state_dict(self, state_dict, strict=True):
super().load_state_dict(state_dict, strict)
# 自动初始化CDF
self.update(force=True)

被折叠的 条评论
为什么被折叠?



