{"id":22895883,"url":"https://github.com/daniel-lima-lopez/bw-cnn","last_synced_at":"2025-07-15T16:07:52.650Z","repository":{"id":249221036,"uuid":"830813820","full_name":"daniel-lima-lopez/BW-CNN","owner":"daniel-lima-lopez","description":"Repository of the article titled \"Butterworth CNN: an improvement on memory use for Fourier Convolutional Neural Networks\"","archived":false,"fork":false,"pushed_at":"2024-11-27T19:41:11.000Z","size":240,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T23:38:55.337Z","etag":null,"topics":["bw-cnn","cnn","cnn-classification","image-classification","keras","tensorflow"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daniel-lima-lopez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-07-19T04:01:18.000Z","updated_at":"2024-11-27T19:41:14.000Z","dependencies_parsed_at":"2024-07-19T12:14:42.685Z","dependency_job_id":"e7a0449c-d5de-4f65-a079-0a7b8d5d31ea","html_url":"https://github.com/daniel-lima-lopez/BW-CNN","commit_stats":null,"previous_names":["daniel-lima-lopez/bw-cnn"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/daniel-lima-lopez/BW-CNN","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-lima-lopez%2FBW-CNN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-lima-lopez%2FBW-CNN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-lima-lopez%2FBW-CNN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-lima-lopez%2FBW-CNN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daniel-lima-lopez","download_url":"https://codeload.github.com/daniel-lima-lopez/BW-CNN/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-lima-lopez%2FBW-CNN/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265444698,"owners_count":23766435,"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":["bw-cnn","cnn","cnn-classification","image-classification","keras","tensorflow"],"created_at":"2024-12-13T23:32:35.783Z","updated_at":"2025-07-15T16:07:52.625Z","avatar_url":"https://github.com/daniel-lima-lopez.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BW-CNN\nThis repository contains the code for the experiments described in the article **\"Butterworth CNN: an improvement on memory use for Fourier Convolutional Neural Networks\"** authored by Daniel Lima-López and [Pilar Gómez-Gil](https://scholar.google.com/citations?user=M3yVI1oAAAAJ\u0026hl=es), to be published in the proceedings of the 2024 IEEE PES Generation, Transmission, and Distribution \u0026 IEEE Autumn Meeting on Power, Electronics and Computing Joint Conference. The code features the implementation of the proposed BW-CNN architecture, along with replicas of the [SB-CNN](https://www.sciencedirect.com/science/article/abs/pii/S0925231219310148) and conventional CNN architectures, which are used for comparing the performance of the proposed method.\n\nThis work received the **Best Computing Track Paper Award**:\n\n\u003cimg src=\"ROPEC.jpeg\" alt=\"-\" width=\"400\"\u003e\n\n## Installation\nThe implementation was carried out using Keras, specifically with TensorFlow version 2.10 and Python version 3.9.19.\n\nRegarding the installation, the project should be cloned as follows:\n```bash\ngit clone git@github.com:daniel-lima-lopez/BW-CNN.git\n```\nAfterwards, you can try the code in the downloaded folder:\n```bash\ncd BW-CNN\n```\n\n## Usage\nThe [FourierNetworks.py](FourierNetworks.py) file includes the implementation of all the Fourier Networks tools used in the paper, including: convolutional layers `Dot` and `ButterworthLayer` used for SB-CNN and BW-CNN, respectively, the `RandomLowHigh` class for defining the auxiliary parameters `A` and `b` in Butterworth filters, the `Spect_Avg_Pool` class for the new pooling layer, the activation function `CReLU` and the `IFFT` transformation layer.\n\nNote that, since the implemented code was made considering the base classes of keras, then it can be used in conjunction with any other element of keras, as long as the output dimension of the tensors allows it.\n\nNotebooks [CNN.ipynb](CNN.ipynb), [SB-CNN.ipynb](SB-CNN.ipynb) and [BW-CNN.ipynb](BW-CNN.ipynb) include examples of the execution of the architectures used in the experiments with the [Colorectal Histology](https://www.tensorflow.org/datasets/catalog/colorectal_histology) dataset (HMNIST). Note that the class `MaxEpoch`, necessary to detect the optimal epoch for the evaluation on the test, set is included. Moreover, in the case of SB-CNN and BW-CNN, the preprocessing performed to work with the centered frequency representation of the images is included.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniel-lima-lopez%2Fbw-cnn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaniel-lima-lopez%2Fbw-cnn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniel-lima-lopez%2Fbw-cnn/lists"}