{"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/primus-pretraining-imu-encoders-with","title":"PRIMUS: Pretraining IMU Encoders with Multimodal Self-Supervision","arxiv_id":"2411.15127","date":"2024-11-22","proceeding":null,"authors":["Arnav M. Das","Chi Ian Tang","Fahim Kawsar","Mohammad Malekzadeh"],"abstract":"Sensing human motions through Inertial Measurement Units (IMUs) embedded in personal devices has enabled significant applications in health and wellness. Labeled IMU data is scarce, however, unlabeled or weakly labeled IMU data can be used to model human motions. For video or text modalities, the \"pretrain and adapt\" approach utilizes large volumes of unlabeled or weakly labeled data to build a strong feature extractor, followed by adaptation to specific tasks using limited labeled data. However, pretraining methods are poorly understood for IMU data, and pipelines are rarely evaluated on out-of-domain tasks. We propose PRIMUS: a method for PRetraining IMU encoderS that uses a novel pretraining objective that is empirically validated based on downstream performance on both in-domain and out-of-domain datasets. The PRIMUS objective effectively enhances downstream performance by combining self-supervision, multimodal, and nearest-neighbor supervision. With fewer than 500 labeled samples per class, PRIMUS improves test accuracy by up to 15%, compared to state-of-the-art baselines. To benefit the broader community, we have open-sourced our code at github.com/nokia-bell-labs/pretrained-imu-encoders.","url_abs":"https://arxiv.org/abs/2411.15127v2","url_pdf":"https://arxiv.org/pdf/2411.15127v2.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":"primus-pretraining-imu-encoders-with","repo_url":"https://github.com/nokia-bell-labs/pretrained-imu-encoders","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2411.15127","atlas_url":"https://app.syntology.ai/?focus=2411.15127","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2411.15127"}},"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":"deterministic:regex_extraction","url":"https://github.com/nokia-bell-labs/pretrained-imu-encoders","reach":null}],"summary":{"ran":2,"ran_draft_wrong":2,"unverified":1},"by_repo_kind":{"official":{"samples":5,"ran":4,"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":5,"samples":[{"code_sha256_prefix":"3902befc3761c168","entry":"FeatureQueue","repo":"nokia-bell-labs/pretrained-imu-encoders","repo_kind":"official","path":"lib/train_modules.py","file_url":"https://github.com/nokia-bell-labs/pretrained-imu-encoders/blob/HEAD/lib/train_modules.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"3902befc3761c168"}},{"code_sha256_prefix":"e35bdb2d1a4657a0","entry":"InfoNCE","repo":"nokia-bell-labs/pretrained-imu-encoders","repo_kind":"official","path":"lib/train_modules.py","file_url":"https://github.com/nokia-bell-labs/pretrained-imu-encoders/blob/HEAD/lib/train_modules.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"e35bdb2d1a4657a0"}},{"code_sha256_prefix":"8009889c7fc31759","entry":"evaluate_batch_similarity","repo":"nokia-bell-labs/pretrained-imu-encoders","repo_kind":"official","path":"lib/train_modules.py","file_url":"https://github.com/nokia-bell-labs/pretrained-imu-encoders/blob/HEAD/lib/train_modules.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"8009889c7fc31759"}},{"code_sha256_prefix":"8417d5a9e637bc8d","entry":"info_nce","repo":"nokia-bell-labs/pretrained-imu-encoders","repo_kind":"official","path":"lib/train_modules.py","file_url":"https://github.com/nokia-bell-labs/pretrained-imu-encoders/blob/HEAD/lib/train_modules.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"8417d5a9e637bc8d"}},{"code_sha256_prefix":"e5f003aabd37f0fb","entry":"PRIMUSLearningModule","repo":"nokia-bell-labs/pretrained-imu-encoders","repo_kind":"official","path":"lib/train_modules.py","file_url":"https://github.com/nokia-bell-labs/pretrained-imu-encoders/blob/HEAD/lib/train_modules.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause-Clear","inline_ok":false,"mcp_get_code":{"code_sha256":"e5f003aabd37f0fb"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}