{"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/learning-to-act-without-actions","title":"Learning to Act without Actions","arxiv_id":"2312.10812","date":"2023-12-17","proceeding":null,"authors":["Dominik Schmidt","Minqi Jiang"],"abstract":"Pre-training large models on vast amounts of web data has proven to be an effective approach for obtaining powerful, general models in domains such as language and vision. However, this paradigm has not yet taken hold in reinforcement learning. This is because videos, the most abundant form of embodied behavioral data on the web, lack the action labels required by existing methods for imitating behavior from demonstrations. We introduce Latent Action Policies (LAPO), a method for recovering latent action information, and thereby latent-action policies, world models, and inverse dynamics models, purely from videos. LAPO is the first method able to recover the structure of the true action space just from observed dynamics, even in challenging procedurally-generated environments. LAPO enables training latent-action policies that can be rapidly fine-tuned into expert-level policies, either offline using a small action-labeled dataset, or online with rewards. LAPO takes a first step towards pre-training powerful, generalist policies and world models on the vast amounts of videos readily available on the web.","url_abs":"https://arxiv.org/abs/2312.10812v2","url_pdf":"https://arxiv.org/pdf/2312.10812v2.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":"learning-to-act-without-actions","repo_url":"https://github.com/schmidtdominik/lapo","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2312.10812","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.10812"}},"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":"deterministic:regex_extraction","url":"https://github.com/schmidtdominik/LAPO","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/schmidtdominik/lapo","reach":{"status":"ok"}}],"summary":{"ran":6,"unverified":4},"by_repo_kind":{"official":{"samples":10,"ran":6,"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":10,"samples":[{"code_sha256_prefix":"a1284465d331926d","entry":"create_buffer","repo":"schmidtdominik/LAPO","repo_kind":"official","path":"lapo/ppo.py","file_url":"https://github.com/schmidtdominik/LAPO/blob/HEAD/lapo/ppo.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a1284465d331926d"}},{"code_sha256_prefix":"bfe0e1380c3ddb39","entry":"get_impala","repo":"schmidtdominik/LAPO","repo_kind":"official","path":"lapo/models.py","file_url":"https://github.com/schmidtdominik/LAPO/blob/HEAD/lapo/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bfe0e1380c3ddb39"}},{"code_sha256_prefix":"a3b2115d7679282c","entry":"get_value","repo":"schmidtdominik/LAPO","repo_kind":"official","path":"lapo/stage3_decoding.py","file_url":"https://github.com/schmidtdominik/LAPO/blob/HEAD/lapo/stage3_decoding.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a3b2115d7679282c"}},{"code_sha256_prefix":"0b4fe17faf9944b2","entry":"merge_TC_dims","repo":"schmidtdominik/LAPO","repo_kind":"official","path":"lapo/models.py","file_url":"https://github.com/schmidtdominik/LAPO/blob/HEAD/lapo/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0b4fe17faf9944b2"}},{"code_sha256_prefix":"7a0b7ee2a602e57d","entry":"normalize_obs","repo":"schmidtdominik/LAPO","repo_kind":"official","path":"lapo/data_loader.py","file_url":"https://github.com/schmidtdominik/LAPO/blob/HEAD/lapo/data_loader.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7a0b7ee2a602e57d"}},{"code_sha256_prefix":"9ee63b9563214757","entry":"obs_to_img","repo":"schmidtdominik/LAPO","repo_kind":"official","path":"lapo/utils.py","file_url":"https://github.com/schmidtdominik/LAPO/blob/HEAD/lapo/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9ee63b9563214757"}},{"code_sha256_prefix":"4a9ce785f9ea66f3","entry":"get_experiment_dir","repo":"schmidtdominik/LAPO","repo_kind":"official","path":"lapo/paths.py","file_url":"https://github.com/schmidtdominik/LAPO/blob/HEAD/lapo/paths.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":"4a9ce785f9ea66f3"}},{"code_sha256_prefix":"c6d53cea32d0d804","entry":"get_expert_data","repo":"schmidtdominik/LAPO","repo_kind":"official","path":"lapo/paths.py","file_url":"https://github.com/schmidtdominik/LAPO/blob/HEAD/lapo/paths.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":"c6d53cea32d0d804"}},{"code_sha256_prefix":"a30afd7068f1647a","entry":"get_models_path","repo":"schmidtdominik/LAPO","repo_kind":"official","path":"lapo/paths.py","file_url":"https://github.com/schmidtdominik/LAPO/blob/HEAD/lapo/paths.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":"a30afd7068f1647a"}},{"code_sha256_prefix":"79a9507515948442","entry":"layer_init","repo":"schmidtdominik/LAPO","repo_kind":"official","path":"lapo/models.py","file_url":"https://github.com/schmidtdominik/LAPO/blob/HEAD/lapo/models.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":"79a9507515948442"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}