{"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/self-validation-early-stopping-for-single","title":"Self-Validation: Early Stopping for Single-Instance Deep Generative Priors","arxiv_id":"2110.12271","date":"2021-10-23","proceeding":null,"authors":["Taihui Li","Zhong Zhuang","Hengyue Liang","Le Peng","Hengkang Wang","Ju Sun"],"abstract":"Recent works have shown the surprising effectiveness of deep generative models in solving numerous image reconstruction (IR) tasks, even without training data. We call these models, such as deep image prior and deep decoder, collectively as single-instance deep generative priors (SIDGPs). The successes, however, often hinge on appropriate early stopping (ES), which by far has largely been handled in an ad-hoc manner. In this paper, we propose the first principled method for ES when applying SIDGPs to IR, taking advantage of the typical bell trend of the reconstruction quality. In particular, our method is based on collaborative training and self-validation: the primal reconstruction process is monitored by a deep autoencoder, which is trained online with the historic reconstructed images and used to validate the reconstruction quality constantly. Experimentally, on several IR problems and different SIDGPs, our self-validation method is able to reliably detect near-peak performance and signal good ES points. Our code is available at https://sun-umn.github.io/Self-Validation/.","url_abs":"https://arxiv.org/abs/2110.12271v1","url_pdf":"https://arxiv.org/pdf/2110.12271v1.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":"self-validation-early-stopping-for-single","repo_url":"https://github.com/sun-umn/Self-Validation","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"self-validation-early-stopping-for-single","repo_url":"https://github.com/sun-umn/early_stopping_for_dip","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"image-reconstruction","task_name":"Image Reconstruction"}],"methods":[{"method_slug":"early-stopping","method_name":"Early Stopping"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2110.12271","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.12271"}},"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/sun-umn/Self-Validation","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sun-umn/early_stopping_for_dip","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":9},"by_repo_kind":{"listed":{"samples":9,"ran":0,"repositories":1}},"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":0,"samples":[{"code_sha256_prefix":"7009ba0103223c36","entry":"DD_test","repo":"sun-umn/Self-Validation","repo_kind":"listed","path":"DD+AE/Net512/W256_P500/train_denoising.py","file_url":"https://github.com/sun-umn/Self-Validation/blob/HEAD/DD%2BAE/Net512/W256_P500/train_denoising.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":"7009ba0103223c36"}},{"code_sha256_prefix":"ee805b2cebc4c91c","entry":"Pseudo_Huber_Loss","repo":"sun-umn/Self-Validation","repo_kind":"listed","path":"DD+AE/Net512/W256_P500/util.py","file_url":"https://github.com/sun-umn/Self-Validation/blob/HEAD/DD%2BAE/Net512/W256_P500/util.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":"ee805b2cebc4c91c"}},{"code_sha256_prefix":"64e1e4bcbdc82ceb","entry":"SmoothIt","repo":"sun-umn/Self-Validation","repo_kind":"listed","path":"DD+AE/Net512/W256_P500/Smooth_Values.py","file_url":"https://github.com/sun-umn/Self-Validation/blob/HEAD/DD%2BAE/Net512/W256_P500/Smooth_Values.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":"64e1e4bcbdc82ceb"}},{"code_sha256_prefix":"e0e4aa9f9075cb4a","entry":"autoencoder_test","repo":"sun-umn/Self-Validation","repo_kind":"listed","path":"DD+AE/Net512/W256_P500/AE_bp.py","file_url":"https://github.com/sun-umn/Self-Validation/blob/HEAD/DD%2BAE/Net512/W256_P500/AE_bp.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":"e0e4aa9f9075cb4a"}},{"code_sha256_prefix":"6911cf7209ee6f23","entry":"calcualte_PSNR","repo":"sun-umn/Self-Validation","repo_kind":"listed","path":"DD+AE/Net512/W256_P500/psnr_ssim.py","file_url":"https://github.com/sun-umn/Self-Validation/blob/HEAD/DD%2BAE/Net512/W256_P500/psnr_ssim.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":"6911cf7209ee6f23"}},{"code_sha256_prefix":"8c7a7b681dec6a9b","entry":"create_clean_corrupted_dataset","repo":"sun-umn/Self-Validation","repo_kind":"listed","path":"DD+AE/Net512/W256_P500/util.py","file_url":"https://github.com/sun-umn/Self-Validation/blob/HEAD/DD%2BAE/Net512/W256_P500/util.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":"8c7a7b681dec6a9b"}},{"code_sha256_prefix":"d210bccf2036f01e","entry":"prepare_AEData","repo":"sun-umn/Self-Validation","repo_kind":"listed","path":"DD+AE/Net512/W256_P500/AE_util.py","file_url":"https://github.com/sun-umn/Self-Validation/blob/HEAD/DD%2BAE/Net512/W256_P500/AE_util.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":"d210bccf2036f01e"}},{"code_sha256_prefix":"6fb6eb7b9a9f460f","entry":"prepare_data","repo":"sun-umn/Self-Validation","repo_kind":"listed","path":"DD+AE/Net512/W256_P500/util.py","file_url":"https://github.com/sun-umn/Self-Validation/blob/HEAD/DD%2BAE/Net512/W256_P500/util.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":"6fb6eb7b9a9f460f"}},{"code_sha256_prefix":"6fca8ea7b6cf9d27","entry":"train_stopAE","repo":"sun-umn/Self-Validation","repo_kind":"listed","path":"DD+AE/Net512/W256_P500/AE_train.py","file_url":"https://github.com/sun-umn/Self-Validation/blob/HEAD/DD%2BAE/Net512/W256_P500/AE_train.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":"6fca8ea7b6cf9d27"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}