{"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/noise2self-blind-denoising-by-self","title":"Noise2Self: Blind Denoising by Self-Supervision","arxiv_id":"1901.11365","date":"2019-01-30","proceeding":null,"authors":["Joshua Batson","Loic Royer"],"abstract":"We propose a general framework for denoising high-dimensional measurements which requires no prior on the signal, no estimate of the noise, and no clean training data. The only assumption is that the noise exhibits statistical independence across different dimensions of the measurement, while the true signal exhibits some correlation. For a broad class of functions (\"$\\mathcal{J}$-invariant\"), it is then possible to estimate the performance of a denoiser from noisy data alone. This allows us to calibrate $\\mathcal{J}$-invariant versions of any parameterised denoising algorithm, from the single hyperparameter of a median filter to the millions of weights of a deep neural network. We demonstrate this on natural image and microscopy data, where we exploit noise independence between pixels, and on single-cell gene expression data, where we exploit independence between detections of individual molecules. This framework generalizes recent work on training neural nets from noisy images and on cross-validation for matrix factorization.","url_abs":"https://arxiv.org/abs/1901.11365v2","url_pdf":"https://arxiv.org/pdf/1901.11365v2.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":"noise2self-blind-denoising-by-self","repo_url":"https://github.com/czbiohub/noise2self","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"noise2self-blind-denoising-by-self","repo_url":"https://github.com/abbasi-ali/noise2self","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"noise2self-blind-denoising-by-self","repo_url":"https://github.com/mozanunal/SparseCT","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"noise2self-blind-denoising-by-self","repo_url":"https://github.com/royerlab/ssi-code","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/color-image-denoising-on-cellnet","task":"Color Image Denoising","dataset":"CellNet","model":"DnCNN (n2t)","rank_in_archive_order":1,"of":1,"metrics":{"PSNR":"34.4"},"uses_additional_data":false},{"leaderboard":"/sota/color-image-denoising-on-hanzi","task":"Color Image Denoising","dataset":"Hanzi","model":"DnCNN (n2t)","rank_in_archive_order":1,"of":1,"metrics":{"PSNR":"13.9"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1901.11365","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1901.11365"}},"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/mozanunal/SparseCT","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/abbasi-ali/noise2self","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/czbiohub/noise2self","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/royerlab/ssi-code","reach":{"status":"ok"}}],"summary":{"ran_draft_wrong":3,"unverified":17},"by_repo_kind":{"official":{"samples":9,"ran":0,"repositories":1},"listed":{"samples":11,"ran":3,"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":"e3edcd371d85dd22","entry":"act","repo":"mozanunal/SparseCT","repo_kind":"listed","path":"sparse_ct/model/common.py","file_url":"https://github.com/mozanunal/SparseCT/blob/HEAD/sparse_ct/model/common.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":"e3edcd371d85dd22"}},{"code_sha256_prefix":"cd7e7024386fb823","entry":"bn","repo":"mozanunal/SparseCT","repo_kind":"listed","path":"sparse_ct/model/common.py","file_url":"https://github.com/mozanunal/SparseCT/blob/HEAD/sparse_ct/model/common.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":"cd7e7024386fb823"}},{"code_sha256_prefix":"040cc21cdcd6aae9","entry":"conv","repo":"mozanunal/SparseCT","repo_kind":"listed","path":"sparse_ct/model/common.py","file_url":"https://github.com/mozanunal/SparseCT/blob/HEAD/sparse_ct/model/common.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":"040cc21cdcd6aae9"}},{"code_sha256_prefix":"e01560b51159d944","entry":"Skip","repo":"mozanunal/SparseCT","repo_kind":"listed","path":"sparse_ct/model/skip.py","file_url":"https://github.com/mozanunal/SparseCT/blob/HEAD/sparse_ct/model/skip.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":"e01560b51159d944"}},{"code_sha256_prefix":"cc0b8b3068669a1f","entry":"expand","repo":"czbiohub/noise2self","repo_kind":"official","path":"util.py","file_url":"https://github.com/czbiohub/noise2self/blob/HEAD/util.py","link_basis":"first_harvest_node","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":"cc0b8b3068669a1f"}},{"code_sha256_prefix":"c4b67caf4a9fdb85","entry":"get_kernel","repo":"mozanunal/SparseCT","repo_kind":"listed","path":"sparse_ct/model/downsampler.py","file_url":"https://github.com/mozanunal/SparseCT/blob/HEAD/sparse_ct/model/downsampler.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":"c4b67caf4a9fdb85"}},{"code_sha256_prefix":"bc20a9e1ef9282cf","entry":"grid_distances","repo":"czbiohub/noise2self","repo_kind":"official","path":"gaussianprocess/gp.py","file_url":"https://github.com/czbiohub/noise2self/blob/HEAD/gaussianprocess/gp.py","link_basis":"first_harvest_node","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":"bc20a9e1ef9282cf"}},{"code_sha256_prefix":"42c6887aee895c67","entry":"im2tensor","repo":"mozanunal/SparseCT","repo_kind":"listed","path":"sparse_ct/tool.py","file_url":"https://github.com/mozanunal/SparseCT/blob/HEAD/sparse_ct/tool.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":"42c6887aee895c67"}},{"code_sha256_prefix":"f1eba247029d5ed9","entry":"interpolate_mask","repo":"czbiohub/noise2self","repo_kind":"official","path":"mask.py","file_url":"https://github.com/czbiohub/noise2self/blob/HEAD/mask.py","link_basis":"first_harvest_node","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":"f1eba247029d5ed9"}},{"code_sha256_prefix":"278458cc9bc9e16a","entry":"np_to_torch","repo":"mozanunal/SparseCT","repo_kind":"listed","path":"sparse_ct/tool.py","file_url":"https://github.com/mozanunal/SparseCT/blob/HEAD/sparse_ct/tool.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":"278458cc9bc9e16a"}},{"code_sha256_prefix":"d5a41a224e76bb65","entry":"pad_circular","repo":"czbiohub/noise2self","repo_kind":"official","path":"models/singleconv.py","file_url":"https://github.com/czbiohub/noise2self/blob/HEAD/models/singleconv.py","link_basis":"first_harvest_node","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":"d5a41a224e76bb65"}},{"code_sha256_prefix":"1a57c82d01231e95","entry":"pixel_grid_mask","repo":"czbiohub/noise2self","repo_kind":"official","path":"mask.py","file_url":"https://github.com/czbiohub/noise2self/blob/HEAD/mask.py","link_basis":"first_harvest_node","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":"1a57c82d01231e95"}},{"code_sha256_prefix":"72dec1fa899ff5e0","entry":"rbe_kernel","repo":"czbiohub/noise2self","repo_kind":"official","path":"gaussianprocess/gp.py","file_url":"https://github.com/czbiohub/noise2self/blob/HEAD/gaussianprocess/gp.py","link_basis":"first_harvest_node","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":"72dec1fa899ff5e0"}},{"code_sha256_prefix":"2bf40b28639a6492","entry":"sample_rbe_gp","repo":"czbiohub/noise2self","repo_kind":"official","path":"gaussianprocess/gp.py","file_url":"https://github.com/czbiohub/noise2self/blob/HEAD/gaussianprocess/gp.py","link_basis":"first_harvest_node","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":"2bf40b28639a6492"}},{"code_sha256_prefix":"d17b3b7c14cf588d","entry":"scale_tensor","repo":"czbiohub/noise2self","repo_kind":"official","path":"util.py","file_url":"https://github.com/czbiohub/noise2self/blob/HEAD/util.py","link_basis":"first_harvest_node","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":"d17b3b7c14cf588d"}},{"code_sha256_prefix":"6d58cee70f947cab","entry":"tensor_to_numpy","repo":"czbiohub/noise2self","repo_kind":"official","path":"util.py","file_url":"https://github.com/czbiohub/noise2self/blob/HEAD/util.py","link_basis":"first_harvest_node","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":"6d58cee70f947cab"}},{"code_sha256_prefix":"29a64a0e234ddf27","entry":"torch_to_np","repo":"mozanunal/SparseCT","repo_kind":"listed","path":"sparse_ct/tool.py","file_url":"https://github.com/mozanunal/SparseCT/blob/HEAD/sparse_ct/tool.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":"29a64a0e234ddf27"}},{"code_sha256_prefix":"5eb531b3d79ed2a0","entry":"tv_2d_l1","repo":"mozanunal/SparseCT","repo_kind":"listed","path":"sparse_ct/loss/tv.py","file_url":"https://github.com/mozanunal/SparseCT/blob/HEAD/sparse_ct/loss/tv.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":"5eb531b3d79ed2a0"}},{"code_sha256_prefix":"579bcc9f43d56e4e","entry":"tv_2d_l2","repo":"mozanunal/SparseCT","repo_kind":"listed","path":"sparse_ct/loss/tv.py","file_url":"https://github.com/mozanunal/SparseCT/blob/HEAD/sparse_ct/loss/tv.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":"579bcc9f43d56e4e"}},{"code_sha256_prefix":"9b8471cb36f4d721","entry":"tvd_2d_l2","repo":"mozanunal/SparseCT","repo_kind":"listed","path":"sparse_ct/loss/tv.py","file_url":"https://github.com/mozanunal/SparseCT/blob/HEAD/sparse_ct/loss/tv.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":"9b8471cb36f4d721"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}