{"id":13738269,"url":"https://github.com/j3soon/tbparse","last_synced_at":"2025-04-04T19:07:21.088Z","repository":{"id":40782887,"uuid":"402835825","full_name":"j3soon/tbparse","owner":"j3soon","description":"Load tensorboard event logs as pandas DataFrames for scientific plotting; Supports both PyTorch and TensorFlow","archived":false,"fork":false,"pushed_at":"2024-08-16T04:35:26.000Z","size":778,"stargazers_count":194,"open_issues_count":3,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T18:09:19.572Z","etag":null,"topics":["machine-learning","parser","plot","python","pytorch","reader","tensorboard","tensorboardx","tensorflow"],"latest_commit_sha":null,"homepage":"https://tbparse.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/j3soon.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-03T16:38:05.000Z","updated_at":"2025-03-18T10:13:06.000Z","dependencies_parsed_at":"2024-11-15T07:30:43.402Z","dependency_job_id":null,"html_url":"https://github.com/j3soon/tbparse","commit_stats":{"total_commits":89,"total_committers":5,"mean_commits":17.8,"dds":0.1235955056179775,"last_synced_commit":"a58179dadaa83a0a567be43c46387c0ea216911b"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j3soon%2Ftbparse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j3soon%2Ftbparse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j3soon%2Ftbparse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j3soon%2Ftbparse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/j3soon","download_url":"https://codeload.github.com/j3soon/tbparse/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247234921,"owners_count":20905854,"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":["machine-learning","parser","plot","python","pytorch","reader","tensorboard","tensorboardx","tensorflow"],"created_at":"2024-08-03T03:02:16.636Z","updated_at":"2025-04-04T19:07:21.071Z","avatar_url":"https://github.com/j3soon.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# tbparse\n\n[![pypi](https://img.shields.io/pypi/v/tbparse)](https://pypi.org/project/tbparse/)\n[![python](https://img.shields.io/pypi/pyversions/tbparse)](https://pypi.org/project/tbparse/)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/tbparse)](https://pypistats.org/packages/tbparse)\n[![license](https://img.shields.io/pypi/l/tbparse)](https://github.com/j3soon/tbparse/blob/master/LICENSE)\n\n[![tests](https://img.shields.io/github/actions/workflow/status/j3soon/tbparse/test-with-tox.yaml?label=tests)](https://github.com/j3soon/tbparse/actions/workflows/test-with-tox.yaml)\n[![build](https://img.shields.io/github/actions/workflow/status/j3soon/tbparse/publish-to-pypi.yaml)](https://github.com/j3soon/tbparse/actions/workflows/publish-to-pypi.yaml)\n[![doc](https://readthedocs.org/projects/tbparse/badge/?version=latest)](https://tbparse.readthedocs.io/en/latest)\n[![codecov](https://codecov.io/gh/j3soon/tbparse/branch/master/graph/badge.svg?token=ASxeqFrMom)](https://codecov.io/gh/j3soon/tbparse)\n\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/j3soon/tbparse/blob/master/docs/notebooks/gallery-pytorch.ipynb)\n\nA simple yet powerful tensorboard event log parser/reader.\n\n* Supports parsing tensorboard event [scalars][parsing-scalars], [tensors][parsing-tensors], [histograms][parsing-histograms], [images][parsing-images], [audio][parsing-audio], [hparams][parsing-hparams], and [text][parsing-text].\n* Supports event generated by\n  [PyTorch](https://pytorch.org/docs/stable/tensorboard.html), [Tensorboard/Keras](https://www.tensorflow.org/tensorboard), and [TensorboardX](https://github.com/lanpa/tensorboardX), with their respective usage examples documented in detail.\n* Allows parsing multiple tensorboard event files in a hierarchical directory structure.\n* Provides plotting examples for each type of events.\n* Stores the data in [pandas.DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html) to allow advanced filtering.\n* Both the documentation and code have high test coverage rate.\n* Follows [PEP 484](https://www.python.org/dev/peps/pep-0484/) with full type hints.\n\nInstallation:\n\n```sh\npip install -U tbparse # requires Python \u003e= 3.8\n```\n\nWe suggest using an additional virtual environment for parsing and plotting the tensorboard events. So no worries if your training code uses Python 3.6 or older versions.\n\nReading one or more event files with tbparse only requires 5 lines of code:\n\n```py\nfrom tbparse import SummaryReader\nlog_dir = \"\u003cPATH_TO_EVENT_FILE_OR_DIRECTORY\u003e\"\nreader = SummaryReader(log_dir)\ndf = reader.scalars\nprint(df)\n```\n\nIf you want an additional column with directory names (i.e., run names), change line 3 above to the following:\n\n```py\nreader = SummaryReader(log_dir, extra_columns={'dir_name'})\n```\n\nFor further information, start from the page: [Parsing Scalars][parsing-scalars].\n\n## Gallery\n\n| Event Type                       | Tensorboard Dashboard                        | tbparse                                 |\n|----------------------------------|----------------------------------------------|-----------------------------------------|\n| [Scalars][parsing-scalars]       | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tb-dashboard/scalars.png)    | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tbparse/scalars.png)    |\n| [Tensors][parsing-tensors]       | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tb-dashboard/tensors.png)    | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tbparse/tensors.png)    |\n| [Histograms][parsing-histograms] | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tb-dashboard/histograms.png) | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tbparse/histograms.png) |\n| [Images][parsing-images]         | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tb-dashboard/images.png)     | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tbparse/images.png)     |\n| [Audio][parsing-audio]           | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tb-dashboard/audio.png)      | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tbparse/audio.png)      |\n| [HParams][parsing-hparams]       | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tb-dashboard/hparams.png)    | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tbparse/hparams.png)    |\n| [Text][parsing-text]             | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tb-dashboard/text.png)       | ![](https://raw.githubusercontent.com/j3soon/tbparse/master/docs/images/tbparse/text.png)       |\n\n[parsing-scalars]: https://tbparse.readthedocs.io/en/latest/pages/parsing-scalars.html\n[parsing-tensors]: https://tbparse.readthedocs.io/en/latest/pages/parsing-tensors.html\n[parsing-histograms]: https://tbparse.readthedocs.io/en/latest/pages/parsing-histograms.html\n[parsing-images]: https://tbparse.readthedocs.io/en/latest/pages/parsing-images.html\n[parsing-audio]: https://tbparse.readthedocs.io/en/latest/pages/parsing-audio.html\n[parsing-hparams]: https://tbparse.readthedocs.io/en/latest/pages/parsing-hparams.html\n[parsing-text]: https://tbparse.readthedocs.io/en/latest/pages/parsing-text.html\n\nAll events above are generated and plotted in [gallery-pytorch.ipynb](https://github.com/j3soon/tbparse/blob/master/docs/notebooks/gallery-pytorch.ipynb).\n\n## Installation\n\n```sh\npip install tensorflow # optional, only required if you want to parse images and audio\npip install -U tbparse # requires Python \u003e= 3.8\n```\n\n**Note**: For details on when TensorFlow is required, see [Installing without TensorFlow](https://tbparse.readthedocs.io/en/latest/pages/installation.html#installing-without-tensorflow).\n\n## Testing the Source Code\n\nTest source code:\n\n```sh\npython3 -m pip install tox\npython3 -m tox\n```\n\nTest and build documentation:\n\n```sh\ncd docs\nmake clean\n# sphinx-tabs seems to require html be built before doctest\nmake html\nmake doctest\n```\n\nGenerate test coverage:\n\n```sh\npython3 -m pip install pandas tensorflow torch tensorboardX pytest pytest-cov\npython3 -m pytest --cov=./ --cov-report html\n```\n\n## License\n\ntbparse is distributed under the [Apache License 2.0](LICENSE).\n\nThe tbparse PyPI package depends on (imports) the following third-party package. Each third-party software package is provided under its own license:\n- [pandas](https://github.com/pandas-dev/pandas) is distributed under the [BSD-3-Clause License ](https://github.com/pandas-dev/pandas/blob/main/LICENSE)\n- [tensorboard](https://github.com/tensorflow/tensorboard) is distributed under the [Apache License 2.0](https://github.com/tensorflow/tensorboard/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj3soon%2Ftbparse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fj3soon%2Ftbparse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj3soon%2Ftbparse/lists"}