Open PnZheng opened 2 years ago
It's a just another implementation for entropy coding. No extra training are needed. In training, we conduct parallel context-based predition for all the codes. However, in coding, we should serialization this prediction according to the coding order. Thus, the operators in trainDDP_Full.py is the parallel implementation, while the operators in pseudo_codec.py is the serialization version. They share the same prarameters.
Thank you, It is a great method. But I have no idea how to convert the parallel version to serialization version, Would you mind open the related code ?
All the codes are given in Github. Please check the PCONV_operator and extension directories.
Thank you,I have solved the problem. But when i test the bitrate-VPSNR, it will more less 3-4dB than value shown in paper. The code is training in GeForce 3090, will that be some problem incur?
The Pseudo Convolution Network needs initialization. Please check if you follow the following steps:
Thanks for your kind reply。Exclude the step “rt=0.”and “opt=false”,others is same. Will it influence heavily? And the ''aplha'' in ''trainDDP_Full.py'' is set 3.0,10.0and16.0 in the validim=56, the final vpsnr is between 27-28dB in training .
By the way, step 2 also works to initialize parameters for different code channel settings, i.e., 192, 112, 56.
In "trainDDP_Full.py", setting different alpha to produce models for different bitrates. You may change the bitrate by code channels and the alpha. channel 192 for the high bitrate region. channel 112 for medial and channel 56 for the low bitrate regions.
Directly training on pseudo convolution is unstable. It is quite important to initialize with the normal convolution. You could view this step as a kind of Knowledge Distillation.
yep,i have changed the dim to 56,112,192 before. The final vpsnr is about 28,29,30 dB which is deelpy different with the paper. It confuse me for months.
oh, i see. thank you for your reply. I will folllw the step to train one more.
This is the key problem. I met it at the beginning.
When i run the code in test/trainDDP_Full.py, i found EntropyNet model is different from EntEncoder/EntDecoder in pseudo_codec.py.
Will there need extra train for entropy model ?