{"id":15065040,"url":"https://github.com/yusugomori/barbar","last_synced_at":"2025-04-10T13:10:36.264Z","repository":{"id":57413932,"uuid":"180712064","full_name":"yusugomori/barbar","owner":"yusugomori","description":"Progress bar for deep learning training iterations💈","archived":false,"fork":false,"pushed_at":"2019-04-12T02:23:16.000Z","size":11,"stargazers_count":34,"open_issues_count":1,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T11:56:49.740Z","etag":null,"topics":["deep-learning","keras","pytorch"],"latest_commit_sha":null,"homepage":"","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/yusugomori.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-11T04:06:44.000Z","updated_at":"2024-02-04T06:35:09.000Z","dependencies_parsed_at":"2022-08-29T15:34:11.734Z","dependency_job_id":null,"html_url":"https://github.com/yusugomori/barbar","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusugomori%2Fbarbar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusugomori%2Fbarbar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusugomori%2Fbarbar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusugomori%2Fbarbar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yusugomori","download_url":"https://codeload.github.com/yusugomori/barbar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247799024,"owners_count":20998100,"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":["deep-learning","keras","pytorch"],"created_at":"2024-09-25T00:29:57.434Z","updated_at":"2025-04-10T13:10:36.237Z","avatar_url":"https://github.com/yusugomori.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Barbar💈\nProgress bar for deep learning training iterations.\n\n![screenshot](https://user-images.githubusercontent.com/770299/55931402-3bb76000-5c60-11e9-9686-f6ae23adcaf0.png)\n\n\n\n## Quick glance\n\n```python\nfrom barbar import Bar\nimport torch\nfrom torch.utils.data import DataLoader\nfrom torchvision import datasets\n\nmnist_train = datasets.MNIST(root=root,\n                             download=True,\n                             train=True)\ntrain_dataloader = DataLoader(mnist_train,\n                              batch_size=100,\n                              shuffle=True)\n\nmodel = MLP().to(device)\n\nfor epoch in range(epochs):\n    print('Epoch: {}'.format(epoch+1))\n\n    for idx, (x, t) in enumerate(Bar(train_dataloader)):\n        x, t = x.to(device), t.to(device)\n        loss, preds = train_step(x, t)\n```\n\n```\nEpoch: 1\n60000/60000: [===============================\u003e] - ETA 0.0s\nEpoch: 2\n28100/60000: [==============\u003e.................] - ETA 4.1s\n```\n\nBarbar works best with PyTorch DataLoader, but it also works with custom DataLoader. Minimal DataLoader example can be written as follows:\n\n```python\nclass CustomDataLoader(object):\n    def __init__(self, dataset,\n                 batch_size=100,\n                 shuffle=False,\n                 random_state=None):\n        self.dataset = list(zip(dataset[0], dataset[1]))\n        self.batch_size = batch_size\n        self.shuffle = shuffle\n        if random_state is None:\n            random_state = np.random.RandomState(1234)\n        self.random_state = random_state\n        self._idx = 0\n        self._reset()\n\n    def __len__(self):\n        N = len(self.dataset)\n        b = self.batch_size\n        return N // b + bool(N % b)\n\n    def __iter__(self):\n        return self\n\n    def __next__(self):\n        if self._idx \u003e= len(self.dataset):\n            self._reset()\n            raise StopIteration()\n\n        x, y = \\\n            zip(*self.dataset[self._idx:(self._idx + self.batch_size)])\n\n        # x = torch.Tensor(x)\n        # y = torch.LongTensor(y)\n\n        self._idx += self.batch_size\n\n        return x, y\n\n    def _reset(self):\n        if self.shuffle:\n            self.dataset = shuffle(self.dataset,\n                                   random_state=self.random_state)\n        self._idx = 0\n\nmnist = datasets.fetch_openml('mnist_784', version=1,)\nx, y = mnist.data.astype(np.float32), mnist.target.astype(np.int32)\nx = x / 255.\nx_train = x[:60000]\ny_train = y[:60000]\n\ntrain_dataloader = CustomDataLoader((x_train, y_train),\n                                    batch_size=100,\n                                    shuffle=True)\n```\n\n## Installation\n\n- **Install Barbar from PyPI (recommended):**\n\n```sh\npip install barbar\n```\n\n- **Alternatively: install Barbar from the GitHub source:**\n\nFirst, clone Barbar using `git`:\n\n```sh\ngit clone https://github.com/yusugomori/barbar.git\n```\n\n Then, `cd` to the Barbar folder and run the install command:\n```sh\ncd barbar\nsudo python setup.py install\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyusugomori%2Fbarbar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyusugomori%2Fbarbar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyusugomori%2Fbarbar/lists"}