{"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/fast-classification-of-small-x-ray","title":"Fast and interpretable classification of small X-ray diffraction datasets using data augmentation and deep neural networks","arxiv_id":"1811.08425","date":"2018-11-20","proceeding":null,"authors":["Felipe Oviedo","Zekun Ren","Shijing Sun","Charlie Settens","Zhe Liu","Noor Titan Putri Hartono","Ramasamy Savitha","Brian L. DeCost","Siyu I. P. Tian","Giuseppe Romano","Aaron Gilad Kusne","Tonio Buonassisi"],"abstract":"X-ray diffraction (XRD) data acquisition and analysis is among the most\ntime-consuming steps in the development cycle of novel thin-film materials. We\npropose a machine-learning-enabled approach to predict crystallographic\ndimensionality and space group from a limited number of thin-film XRD patterns.\nWe overcome the scarce-data problem intrinsic to novel materials development by\ncoupling a supervised machine learning approach with a model agnostic,\nphysics-informed data augmentation strategy using simulated data from the\nInorganic Crystal Structure Database (ICSD) and experimental data. As a test\ncase, 115 thin-film metal halides spanning 3 dimensionalities and 7\nspace-groups are synthesized and classified. After testing various algorithms,\nwe develop and implement an all convolutional neural network, with cross\nvalidated accuracies for dimensionality and space-group classification of 93%\nand 89%, respectively. We propose average class activation maps, computed from\na global average pooling layer, to allow high model interpretability by human\nexperimentalists, elucidating the root causes of misclassification. Finally, we\nsystematically evaluate the maximum XRD pattern step size (data acquisition\nrate) before loss of predictive accuracy occurs, and determine it to be\n0.16{\\deg}, which enables an XRD pattern to be obtained and classified in 5.5\nminutes or less.","url_abs":"http://arxiv.org/abs/1811.08425v2","url_pdf":"http://arxiv.org/pdf/1811.08425v2.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":"fast-classification-of-small-x-ray","repo_url":"https://github.com/PV-Lab/AUTO-XRD","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"fast-classification-of-small-x-ray","repo_url":"https://github.com/PV-Lab/autoXRD","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"fast-classification-of-small-x-ray","repo_url":"https://github.com/ma921/XRDidentifier","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"machine-learning","task_name":"BIG-bench Machine Learning"},{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"space-group-classification","task_name":"Space group classification"},{"task_slug":"x-ray-diffraction-xrd","task_name":"X-Ray Diffraction (XRD)"}],"methods":[{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"global-average-pooling","method_name":"Global Average Pooling"},{"method_slug":"interpretability","method_name":"Interpretability"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1811.08425","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1811.08425"}},"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/PV-Lab/AUTO-XRD","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PV-Lab/autoXRD","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ma921/XRDidentifier","reach":null}],"summary":{"ran_draft_wrong":2,"ran_violates":1,"ran_honours":2,"ran_fixture":1,"unverified":2},"by_repo_kind":{"official":{"samples":2,"ran":0,"repositories":1},"listed":{"samples":6,"ran":6,"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":3,"samples":[{"code_sha256_prefix":"00c7a4306c2ec79e","entry":"augdata","repo":"PV-Lab/autoXRD","repo_kind":"listed","path":"autoXRD.py","file_url":"https://github.com/PV-Lab/autoXRD/blob/HEAD/autoXRD.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"00c7a4306c2ec79e"}},{"code_sha256_prefix":"f1a7af06566be3ed","entry":"normalise","repo":"ma921/XRDidentifier","repo_kind":"listed","path":"train_expert.py","file_url":"https://github.com/ma921/XRDidentifier/blob/HEAD/train_expert.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f1a7af06566be3ed"}},{"code_sha256_prefix":"20dce98251942490","entry":"normdata","repo":"PV-Lab/autoXRD","repo_kind":"listed","path":"autoXRD.py","file_url":"https://github.com/PV-Lab/autoXRD/blob/HEAD/autoXRD.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"20dce98251942490"}},{"code_sha256_prefix":"ef94397398cdacec","entry":"normdatasingle","repo":"PV-Lab/autoXRD","repo_kind":"listed","path":"autoXRD.py","file_url":"https://github.com/PV-Lab/autoXRD/blob/HEAD/autoXRD.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ef94397398cdacec"}},{"code_sha256_prefix":"bd71181156fd6add","entry":"random_data_split","repo":"ma921/XRDidentifier","repo_kind":"listed","path":"train_expert.py","file_url":"https://github.com/ma921/XRDidentifier/blob/HEAD/train_expert.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bd71181156fd6add"}},{"code_sha256_prefix":"285d3f873a799a13","entry":"spectra_loader","repo":"ma921/XRDidentifier","repo_kind":"listed","path":"train_expert.py","file_url":"https://github.com/ma921/XRDidentifier/blob/HEAD/train_expert.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"285d3f873a799a13"}},{"code_sha256_prefix":"3da6e7f77ed77400","entry":"find_incorrects","repo":"PV-Lab/AUTO-XRD","repo_kind":"official","path":"autoXRD_vis.py","file_url":"https://github.com/PV-Lab/AUTO-XRD/blob/HEAD/autoXRD_vis.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3da6e7f77ed77400"}},{"code_sha256_prefix":"9e44f4085bfb81d5","entry":"get_cam","repo":"PV-Lab/AUTO-XRD","repo_kind":"official","path":"autoXRD_vis.py","file_url":"https://github.com/PV-Lab/AUTO-XRD/blob/HEAD/autoXRD_vis.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9e44f4085bfb81d5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}