{"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/bananas-bayesian-optimization-with-neural","title":"BANANAS: Bayesian Optimization with Neural Architectures for Neural Architecture Search","arxiv_id":"1910.11858","date":"2019-10-25","proceeding":null,"authors":["Colin White","Willie Neiswanger","Yash Savani"],"abstract":"Over the past half-decade, many methods have been considered for neural architecture search (NAS). Bayesian optimization (BO), which has long had success in hyperparameter optimization, has recently emerged as a very promising strategy for NAS when it is coupled with a neural predictor. Recent work has proposed different instantiations of this framework, for example, using Bayesian neural networks or graph convolutional networks as the predictive model within BO. However, the analyses in these papers often focus on the full-fledged NAS algorithm, so it is difficult to tell which individual components of the framework lead to the best performance. In this work, we give a thorough analysis of the \"BO + neural predictor\" framework by identifying five main components: the architecture encoding, neural predictor, uncertainty calibration method, acquisition function, and acquisition optimization strategy. We test several different methods for each component and also develop a novel path-based encoding scheme for neural architectures, which we show theoretically and empirically scales better than other encodings. Using all of our analyses, we develop a final algorithm called BANANAS, which achieves state-of-the-art performance on NAS search spaces. We adhere to the NAS research checklist (Lindauer and Hutter 2019) to facilitate best practices, and our code is available at https://github.com/naszilla/naszilla.","url_abs":"https://arxiv.org/abs/1910.11858v3","url_pdf":"https://arxiv.org/pdf/1910.11858v3.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":"bananas-bayesian-optimization-with-neural","repo_url":"https://github.com/naszilla/bananas","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"bananas-bayesian-optimization-with-neural","repo_url":"https://github.com/naszilla/naszilla","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"bananas-bayesian-optimization-with-neural","repo_url":"https://github.com/ZachZhu7/banana-git","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"bayesian-optimization","task_name":"Bayesian Optimization"},{"task_slug":"hyperparameter-optimization","task_name":"Hyperparameter Optimization"},{"task_slug":"architecture-search","task_name":"Neural Architecture Search"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"}],"methods":[{"method_slug":"gaussian-process","method_name":"Gaussian Process"},{"method_slug":"graph-convolutional-networks","method_name":"Graph Convolutional Networks"},{"method_slug":"test","method_name":"Test"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/neural-architecture-search-on-nas-bench-201","task":"Neural Architecture Search","dataset":"NAS-Bench-201, ImageNet-16-120","model":"BANANAS","rank_in_archive_order":18,"of":49,"metrics":{"Accuracy (Test)":"46.3","Search time (s)":"100800"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1910.11858","atlas_url":"https://app.syntology.ai/?focus=1910.11858","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1910.11858"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/naszilla/naszilla","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ZachZhu7/banana-git","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/naszilla/bananas","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"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":"abc6e16bb94120ba","entry":"acq_fn","repo":"naszilla/bananas","repo_kind":"official","path":"acquisition_functions.py","file_url":"https://github.com/naszilla/bananas/blob/HEAD/acquisition_functions.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":"abc6e16bb94120ba"}},{"code_sha256_prefix":"cf0c21c05016ec7b","entry":"algo_params","repo":"naszilla/bananas","repo_kind":"official","path":"params.py","file_url":"https://github.com/naszilla/bananas/blob/HEAD/params.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":"cf0c21c05016ec7b"}},{"code_sha256_prefix":"2a3699601fc36df1","entry":"compute_best_test_losses","repo":"naszilla/bananas","repo_kind":"official","path":"nas_algorithms.py","file_url":"https://github.com/naszilla/bananas/blob/HEAD/nas_algorithms.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":"2a3699601fc36df1"}},{"code_sha256_prefix":"3cb4846ed85433e1","entry":"mape_loss","repo":"naszilla/bananas","repo_kind":"official","path":"meta_neural_net.py","file_url":"https://github.com/naszilla/bananas/blob/HEAD/meta_neural_net.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":"3cb4846ed85433e1"}},{"code_sha256_prefix":"6498b78336ea92e5","entry":"meta_neuralnet_params","repo":"naszilla/bananas","repo_kind":"official","path":"params.py","file_url":"https://github.com/naszilla/bananas/blob/HEAD/params.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":"6498b78336ea92e5"}},{"code_sha256_prefix":"94712b633dd36518","entry":"mle_loss","repo":"naszilla/bananas","repo_kind":"official","path":"meta_neural_net.py","file_url":"https://github.com/naszilla/bananas/blob/HEAD/meta_neural_net.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":"94712b633dd36518"}},{"code_sha256_prefix":"8e77afefdb71320a","entry":"random_search","repo":"naszilla/bananas","repo_kind":"official","path":"nas_algorithms.py","file_url":"https://github.com/naszilla/bananas/blob/HEAD/nas_algorithms.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":"8e77afefdb71320a"}},{"code_sha256_prefix":"4ce2165ea584f056","entry":"run_nas_algorithm","repo":"naszilla/bananas","repo_kind":"official","path":"nas_algorithms.py","file_url":"https://github.com/naszilla/bananas/blob/HEAD/nas_algorithms.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":"4ce2165ea584f056"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}