{"id":16271724,"url":"https://github.com/silvanmelchior/cbf-ssm","last_synced_at":"2025-10-04T07:32:00.478Z","repository":{"id":47514858,"uuid":"180589452","full_name":"silvanmelchior/CBF-SSM","owner":"silvanmelchior","description":"Official implementation of the CBF-SSM model","archived":false,"fork":false,"pushed_at":"2021-10-21T06:58:09.000Z","size":102,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-12T21:33:33.485Z","etag":null,"topics":["gaussian-processes","machine-learning","state-space-models","variational-inference"],"latest_commit_sha":null,"homepage":"https://arxiv.org/abs/1907.07035","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/silvanmelchior.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-10T13:37:18.000Z","updated_at":"2024-02-05T09:03:11.000Z","dependencies_parsed_at":"2022-09-23T12:04:00.895Z","dependency_job_id":null,"html_url":"https://github.com/silvanmelchior/CBF-SSM","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silvanmelchior%2FCBF-SSM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silvanmelchior%2FCBF-SSM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silvanmelchior%2FCBF-SSM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silvanmelchior%2FCBF-SSM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silvanmelchior","download_url":"https://codeload.github.com/silvanmelchior/CBF-SSM/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235227501,"owners_count":18956140,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gaussian-processes","machine-learning","state-space-models","variational-inference"],"created_at":"2024-10-10T18:14:34.416Z","updated_at":"2025-10-04T07:31:55.193Z","avatar_url":"https://github.com/silvanmelchior.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Conditional Backward/Forward SSM\n\nThis repository contains the official implementation of the CBF-SSM model presented in\n[Structured Variational Inference in Unstable Gaussian Process State Space Models](https://arxiv.org/abs/1907.07035)\nby Silvan Melchior, Felix Berkenkamp, Sebastian Curi, Andreas Krause.\n\nPlease cite the above paper when using this code in any way.\n\n## Datasets\n\nThe datasets PR-SSM was already benchmarked on (Actuator, Ballbeam, Drive, Dryer,\nFurnace, Sarcos) can be downloaded as described in the\n[readme](https://github.com/boschresearch/PR-SSM/tree/master/datasets/real_world_tasks)\nin their repo.\n\nThe remaining datasets (RoboMove, Voliro, SpringNonLinear) can be downloaded\n[here](https://drive.google.com/open?id=1fBT0xdyvtnW066_FKW_fGp3NvKGPAyyt).\n\nAll datasets need to be placed in [cbfssm/datasets/data](cbfssm/datasets/data).\n\n## Installation\n\nTo install CBF-SSM, run:\n\n```\n$ cd \u003cpath-of-repo\u003e\n$ pip3 install -e .\n```\n\n## Reproduce Paper Results\n\nThe folder [run](run) contains a script to reproduce the results for every\ndataset we use to compare CBF-SSM to previous work. The results will be in a new folder\ncalled *run_output*.\n\n## Run Your Own Experiments\n\nFollow these instructions to run your own experiments using CBF-SSM\n\n### Dataset Class\n\nAt first, write a new dataset class which derives from the\n[base class](cbfssm/datasets/base_ds.py). The code needs to overload `dim_u`, `dim_y` \nand the method `prepare_data` (see [example](cbfssm/datasets/dsmanager_ds.py)) s.t. it\n\n* loads the data\n* normalizes the data\n* saves the data as train- and test-arrays with shape\n  `[experiments, time-samples, data-dimension]`\n* calls `create_batches()`\n\nLoading of the data depends on the source of your new dataset. For normalizing the data,\nthere are helper functions if you have one experiment only (i.e. one long sequence),\nagain see [example](cbfssm/datasets/dsmanager_ds.py).\n\n### Run File\n\nThen, write a new run-file. You can use the [template](run/template.py) as a\nstarting point, which also contains a lot of comments on how to choose your parameters.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilvanmelchior%2Fcbf-ssm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilvanmelchior%2Fcbf-ssm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilvanmelchior%2Fcbf-ssm/lists"}