{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/contrastive-energy-prediction-for-exact","title":"Contrastive Energy Prediction for Exact Energy-Guided Diffusion Sampling in Offline Reinforcement Learning","arxiv_id":"2304.12824","date":"2023-04-25","proceeding":null,"authors":["Cheng Lu","Huayu Chen","Jianfei Chen","Hang Su","Chongxuan Li","Jun Zhu"],"abstract":"Guided sampling is a vital approach for applying diffusion models in real-world tasks that embeds human-defined guidance during the sampling procedure. This paper considers a general setting where the guidance is defined by an (unnormalized) energy function. The main challenge for this setting is that the intermediate guidance during the diffusion sampling procedure, which is jointly defined by the sampling distribution and the energy function, is unknown and is hard to estimate. To address this challenge, we propose an exact formulation of the intermediate guidance as well as a novel training objective named contrastive energy prediction (CEP) to learn the exact guidance. Our method is guaranteed to converge to the exact guidance under unlimited model capacity and data samples, while previous methods can not. We demonstrate the effectiveness of our method by applying it to offline reinforcement learning (RL). Extensive experiments on D4RL benchmarks demonstrate that our method outperforms existing state-of-the-art algorithms. We also provide some examples of applying CEP for image synthesis to demonstrate the scalability of CEP on high-dimensional data.","url_abs":"https://arxiv.org/abs/2304.12824v2","url_pdf":"https://arxiv.org/pdf/2304.12824v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"contrastive-energy-prediction-for-exact","repo_url":"https://github.com/thu-ml/cep-energy-guided-diffusion","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"contrastive-energy-prediction-for-exact","repo_url":"https://github.com/chendrag/sfbc","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"contrastive-energy-prediction-for-exact","repo_url":"https://github.com/opendilab/DI-engine","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"d4rl","task_name":"D4RL"},{"task_slug":"image-generation","task_name":"Image Generation"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2304.12824","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2304.12824"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/thu-ml/cep-energy-guided-diffusion","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/opendilab/DI-engine","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chendrag/sfbc","reach":null}],"summary":{"ran_draft_wrong":5,"ran":8,"ran_honours":3,"ran_fixture":1,"unverified":10},"by_repo_kind":{"official":{"samples":21,"ran":13,"repositories":1},"listed":{"samples":6,"ran":4,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":5,"samples":[{"code_sha256_prefix":"8ab9a97df8161f31","entry":"center_crop_arr","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/image_datasets.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/image_datasets.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":2,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8ab9a97df8161f31"}},{"code_sha256_prefix":"a58c4f9c165debe0","entry":"ContrastiveLoss","repo":"opendilab/DI-engine","repo_kind":"listed","path":"ding/torch_utils/loss/contrastive_loss.py","file_url":"https://github.com/opendilab/DI-engine/blob/HEAD/ding/torch_utils/loss/contrastive_loss.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a58c4f9c165debe0"}},{"code_sha256_prefix":"08efd796ca31c61d","entry":"GaussianFourierProjection","repo":"chendrag/sfbc","repo_kind":"listed","path":"diffusion_SDE/model.py","file_url":"https://github.com/chendrag/sfbc/blob/HEAD/diffusion_SDE/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"08efd796ca31c61d"}},{"code_sha256_prefix":"d46234d5c330655a","entry":"MUlQnet","repo":"chendrag/sfbc","repo_kind":"listed","path":"diffusion_SDE/model.py","file_url":"https://github.com/chendrag/sfbc/blob/HEAD/diffusion_SDE/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d46234d5c330655a"}},{"code_sha256_prefix":"0dea05ba16fe2e4b","entry":"MlpQnet","repo":"chendrag/sfbc","repo_kind":"listed","path":"diffusion_SDE/model.py","file_url":"https://github.com/chendrag/sfbc/blob/HEAD/diffusion_SDE/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0dea05ba16fe2e4b"}},{"code_sha256_prefix":"cfd76fd0d89574a4","entry":"approx_standard_normal_cdf","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/losses.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/losses.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cfd76fd0d89574a4"}},{"code_sha256_prefix":"2ab2316ac6fdd869","entry":"betas_for_alpha_bar","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/gaussian_diffusion.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/gaussian_diffusion.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2ab2316ac6fdd869"}},{"code_sha256_prefix":"35572566acf61c78","entry":"create_named_schedule_sampler","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/resample.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/resample.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"35572566acf61c78"}},{"code_sha256_prefix":"cd33283d615fb3d7","entry":"discretized_gaussian_log_likelihood","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/losses.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/losses.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cd33283d615fb3d7"}},{"code_sha256_prefix":"a086d6286a40b889","entry":"get_named_beta_schedule","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/gaussian_diffusion.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/gaussian_diffusion.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a086d6286a40b889"}},{"code_sha256_prefix":"e41367ad14ff58fd","entry":"get_param_groups_and_shapes","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/fp16_util.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/fp16_util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e41367ad14ff58fd"}},{"code_sha256_prefix":"e20dd5102da3b050","entry":"make_master_params","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/fp16_util.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/fp16_util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e20dd5102da3b050"}},{"code_sha256_prefix":"bcd8b4acab199405","entry":"make_output_format","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/logger.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/logger.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bcd8b4acab199405"}},{"code_sha256_prefix":"cf2798b666b231ca","entry":"normal_kl","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/losses.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/losses.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cf2798b666b231ca"}},{"code_sha256_prefix":"9b6e4e070473e76f","entry":"space_timesteps","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/respace.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/respace.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9b6e4e070473e76f"}},{"code_sha256_prefix":"64fff1e30802b815","entry":"unflatten_master_params","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/fp16_util.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/fp16_util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"64fff1e30802b815"}},{"code_sha256_prefix":"129b804760b3115f","entry":"zero_module","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/new.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/new.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"129b804760b3115f"}},{"code_sha256_prefix":"2a016b24a089f7d2","entry":"ScoreBase","repo":"chendrag/sfbc","repo_kind":"listed","path":"diffusion_SDE/model.py","file_url":"https://github.com/chendrag/sfbc/blob/HEAD/diffusion_SDE/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2a016b24a089f7d2"}},{"code_sha256_prefix":"9ccfba3c00a175f6","entry":"ScoreNet","repo":"chendrag/sfbc","repo_kind":"listed","path":"diffusion_SDE/model.py","file_url":"https://github.com/chendrag/sfbc/blob/HEAD/diffusion_SDE/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9ccfba3c00a175f6"}},{"code_sha256_prefix":"ecd0fc28815b65ae","entry":"avg_pool_nd","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/new.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/new.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ecd0fc28815b65ae"}},{"code_sha256_prefix":"fe4eb545bbb728e0","entry":"conv_nd","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/new.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/new.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fe4eb545bbb728e0"}},{"code_sha256_prefix":"5e5d99a81705a07f","entry":"create_classifier_and_diffusion","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/script_util.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/script_util.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5e5d99a81705a07f"}},{"code_sha256_prefix":"35ea054532112e53","entry":"create_model","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/script_util.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/script_util.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"35ea054532112e53"}},{"code_sha256_prefix":"6a3cfc58dafbe392","entry":"create_model_and_diffusion","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/script_util.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/script_util.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6a3cfc58dafbe392"}},{"code_sha256_prefix":"e515a67f7f32e76d","entry":"mpi_weighted_mean","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/logger.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/logger.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e515a67f7f32e76d"}},{"code_sha256_prefix":"0c6607473a4c4c55","entry":"profile","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/logger.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/logger.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0c6607473a4c4c55"}},{"code_sha256_prefix":"53d5be4fdbcfac23","entry":"random_crop_arr","repo":"thu-ml/cep-energy-guided-diffusion","repo_kind":"official","path":"images/guided_diffusion/image_datasets.py","file_url":"https://github.com/thu-ml/cep-energy-guided-diffusion/blob/HEAD/images/guided_diffusion/image_datasets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"53d5be4fdbcfac23"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}