{"id":17623473,"url":"https://github.com/rapsssito/cats-gan","last_synced_at":"2026-05-19T19:31:34.041Z","repository":{"id":95491801,"uuid":"408875425","full_name":"Rapsssito/cats-gan","owner":"Rapsssito","description":"Example of how to generate images of cat faces using a Deep Convolutional Generative Adversarial Network (DCGAN).","archived":false,"fork":false,"pushed_at":"2021-09-21T16:37:47.000Z","size":5286,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-01T09:53:49.531Z","etag":null,"topics":["deep-learning","gan","generative-adversarial-network","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/Rapsssito.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":"2021-09-21T15:31:30.000Z","updated_at":"2025-10-29T06:05:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"3801bbf6-b745-494f-8240-de45d3cb839d","html_url":"https://github.com/Rapsssito/cats-gan","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Rapsssito/cats-gan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rapsssito%2Fcats-gan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rapsssito%2Fcats-gan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rapsssito%2Fcats-gan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rapsssito%2Fcats-gan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rapsssito","download_url":"https://codeload.github.com/Rapsssito/cats-gan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rapsssito%2Fcats-gan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33229364,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T15:49:41.270Z","status":"ssl_error","status_checked_at":"2026-05-19T15:49:22.917Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","gan","generative-adversarial-network","tensorflow"],"created_at":"2024-10-22T21:09:58.909Z","updated_at":"2026-05-19T19:31:29.034Z","avatar_url":"https://github.com/Rapsssito.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CATS - Deep Convolutional Generative Adversarial Network\r\n\r\nThis repository serves as an example of how to generate images of cat faces using a [Deep Convolutional Generative Adversarial Network](https://arxiv.org/pdf/1511.06434.pdf) (DCGAN) developed by [@Rapsssito](https://github.com/rapsssito) and [@pablotix20](https://github.com/pablotix20). It is heavily inspired by [TensorFlow's tutorial](https://www.tensorflow.org/tutorials/generative/dcgan) about this topic. This repository does not provide a training dataset, but several are available online:\r\n * [`fferlito/Cat-faces-dataset`](https://github.com/fferlito/Cat-faces-dataset)\r\n * [`Cats faces 64x64`](https://www.kaggle.com/spandan2/cats-faces-64x64-for-generative-models)\r\n\r\n## Our model\r\nOur particular model, provided in [cats_gan.ipynb](./cats_gan.ipynb), uses more than 30k 64x64 resized RGB images of cat faces as the training dataset. Below the structures for the generator and discriminator are provided:\r\n\r\n### Generator structure\r\n```\r\n_________________________________________________________________\r\nLayer (type)                 Output Shape              Param #   \r\n=================================================================\r\ndense (Dense)                (None, 50)                2500      \r\n_________________________________________________________________\r\nbatch_normalization (BatchNo (None, 50)                200       \r\n_________________________________________________________________\r\nleaky_re_lu (LeakyReLU)      (None, 50)                0         \r\n_________________________________________________________________\r\nreshape (Reshape)            (None, 1, 1, 50)          0         \r\n_________________________________________________________________\r\nconv2d_transpose (Conv2DTran (None, 2, 2, 512)         921600    \r\n_________________________________________________________________\r\nbatch_normalization_1 (Batch (None, 2, 2, 512)         2048      \r\n_________________________________________________________________\r\nleaky_re_lu_1 (LeakyReLU)    (None, 2, 2, 512)         0         \r\n_________________________________________________________________\r\nconv2d_transpose_1 (Conv2DTr (None, 4, 4, 256)         4718592   \r\n_________________________________________________________________\r\nbatch_normalization_2 (Batch (None, 4, 4, 256)         1024      \r\n_________________________________________________________________\r\nleaky_re_lu_2 (LeakyReLU)    (None, 4, 4, 256)         0         \r\n_________________________________________________________________\r\nconv2d_transpose_2 (Conv2DTr (None, 8, 8, 128)         1179648\r\n\r\n=================================================================\r\nTotal params: 7,215,372\r\nTrainable params: 7,213,256\r\nNon-trainable params: 2,116\r\n```\r\n\r\n### Discriminator structure\r\n```\r\n_________________________________________________________________\r\nLayer (type)                 Output Shape              Param #   \r\n=================================================================\r\nconv2d_18 (Conv2D)           (None, 32, 32, 16)        1744      \r\n_________________________________________________________________\r\nleaky_re_lu_25 (LeakyReLU)   (None, 32, 32, 16)        0         \r\n_________________________________________________________________\r\ndropout_18 (Dropout)         (None, 32, 32, 16)        0         \r\n_________________________________________________________________\r\nconv2d_19 (Conv2D)           (None, 16, 16, 32)        18464     \r\n_________________________________________________________________\r\nleaky_re_lu_26 (LeakyReLU)   (None, 16, 16, 32)        0         \r\n_________________________________________________________________\r\ndropout_19 (Dropout)         (None, 16, 16, 32)        0         \r\n_________________________________________________________________\r\nconv2d_20 (Conv2D)           (None, 8, 8, 64)          73792     \r\n_________________________________________________________________\r\nleaky_re_lu_27 (LeakyReLU)   (None, 8, 8, 64)          0         \r\n_________________________________________________________________\r\ndropout_20 (Dropout)         (None, 8, 8, 64)          0         \r\n_________________________________________________________________\r\nconv2d_21 (Conv2D)           (None, 4, 4, 128)         295040    \r\n_________________________________________________________________\r\nleaky_re_lu_28 (LeakyReLU)   (None, 4, 4, 128)         0\r\n\r\nTotal params: 6,288,561\r\nTrainable params: 6,288,561\r\nNon-trainable params: 0\r\n```\r\n\r\n### Experiment\r\nAn experiment with 3484 epochs provided the following results:\r\n\r\n![docs/cats_gan.gif](docs/cats_gan.gif)\r\n\r\n#### Generator and discriminator losses\r\n![docs/loss_chart.jpg](docs/loss_chart.jpg)\r\n\r\n#### 16 sample images (epoch 0301)\r\n![docs/image_at_epoch_0301.png](docs/image_at_epoch_0301.png)\r\n\r\n#### 16 sample images (epoch 3476)\r\n![docs/image_at_epoch_3476.png](docs/image_at_epoch_3476.png)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapsssito%2Fcats-gan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frapsssito%2Fcats-gan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapsssito%2Fcats-gan/lists"}