<!-- markdownlint-disable MD033 -->
<!-- markdownlint-disable MD041 -->
<div align="center">
<img width="50%" src="https://github.com/james77777778/kimm/assets/20734616/b21db8f2-307b-4791-b93d-e913e45fb238" alt="KIMM">
[![Keras](https://img.shields.io/badge/keras-v3.3.0+-success.svg)](https://github.com/keras-team/keras)
[![PyPI](https://img.shields.io/pypi/v/kimm)](https://pypi.org/project/kimm/)
[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/james77777778/kimm/issues)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/james77777778/keras-image-models/actions.yml?label=tests)](https://github.com/james77777778/keras-image-models/actions/workflows/actions.yml?query=branch%3Amain++)
[![codecov](https://codecov.io/gh/james77777778/keras-image-models/graph/badge.svg?token=eEha1SR80D)](https://codecov.io/gh/james77777778/keras-image-models)
</div>
# Keras Image Models
- [Latest Updates](#latest-updates)
- [Introduction](#introduction)
- [Usage](#usage)
- [Installation](#installation)
- [Quickstart](#quickstart)
- [Image classification with ImageNet weights](#image-classification-using-the-model-pretrained-on-imagenet)
- [An end-to-end fine-tuning example: cats vs. dogs dataset](#an-end-to-end-example-fine-tuning-an-image-classification-model-on-a-cats-vs-dogs-dataset)
- [Grad-CAM](#grad-cam)
- [Model Zoo](#model-zoo)
- [License](#license)
- [Acknowledgements](#acknowledgements)
## Latest Updates
2024/06/02:
- Add docstrings for all `kimm` models.
- Merge reparameterizable layers into 1 `ReparameterizableConv2D`
- Add `GhostNetV3*` from [huawei-noah/Efficient-AI-Backbones](https://github.com/huawei-noah/Efficient-AI-Backbones)
## Introduction
**K**eras **Im**age **M**odels (`kimm`) is a collection of image models, blocks and layers written in Keras 3. The goal is to offer SOTA models with pretrained weights in a user-friendly manner.
**KIMM** is:
- 🚀 A model zoo where almost all models come with **pre-trained weights on ImageNet**.
- 🧰 Providing APIs to export models to `.tflite` and `.onnx`.
- 🔧 Supporting the **reparameterization** technique.
- ✨ Integrated with **feature extraction** capability.
## Usage
- `kimm.list_models`
- `kimm.models.*.available_feature_keys`
- `kimm.models.*(...)`
- `kimm.models.*(..., feature_extractor=True, feature_keys=[...])`
```python
import keras
import kimm
# List available models
print(kimm.list_models("mobileone", weights="imagenet"))
# ['MobileOneS0', 'MobileOneS1', 'MobileOneS2', 'MobileOneS3']
# Initialize model with pretrained ImageNet weights
# Note: all `kimm` models expect inputs in the value range of [0, 255] by
# default if `incldue_preprocessing=True`
x = keras.random.uniform([1, 224, 224, 3]) * 255.0
model = kimm.models.MobileOneS0()
y = model.predict(x)
print(y.shape)
# (1, 1000)
# Print some basic information about the model
print(model)
# <MobileOneS0 name=MobileOneS0, input_shape=(None, None, None, 3),
# default_size=224, preprocessing_mode="imagenet", feature_extractor=False,
# feature_keys=None>
# This information can also be accessed through properties
print(model.input_shape, model.default_size, model.preprocessing_mode)
# List available feature keys of the model class
print(kimm.models.MobileOneS0.available_feature_keys)
# ['STEM_S2', 'BLOCK0_S4', 'BLOCK1_S8', 'BLOCK2_S16', 'BLOCK3_S32']
# Enable feature extraction by setting `feature_extractor=True`
# `feature_keys` can be optionally specified
feature_extractor = kimm.models.MobileOneS0(
feature_extractor=True, feature_keys=["BLOCK2_S16", "BLOCK3_S32"]
)
features = feature_extractor.predict(x)
for feature_name, feature in features.items():
print(feature_name, feature.shape)
# BLOCK2_S16 (1, 14, 14, 256), BLOCK3_S32 (1, 7, 7, 1024), ...
```
> [!NOTE]
> All models in `kimm` expect inputs in the value range of [0, 255] by default if `incldue_preprocessing=True`.
> Some models only accept static inputs. You should explicitly specify the input shape for these models by `input_shape=[*, *, 3]`.
## Advanced Usage
- `kimm.utils.get_reparameterized_model`
- `kimm.export.export_tflite`
- `kimm.export.export_onnx`
```python
import keras
import kimm
import numpy as np
# Initialize a reparameterizable model
x = keras.random.uniform([1, 224, 224, 3]) * 255.0
model = kimm.models.MobileOneS0()
y = model.predict(x)
# Get reparameterized model by kimm.utils.get_reparameterized_model
reparameterized_model = kimm.utils.get_reparameterized_model(model)
y2 = reparameterized_model.predict(x)
np.testing.assert_allclose(
keras.ops.convert_to_numpy(y), keras.ops.convert_to_numpy(y2), atol=1e-3
)
# Export model to tflite format
kimm.export.export_tflite(reparameterized_model, 224, "model.tflite")
# Export model to onnx format
# Note: must be "channels_first" format before the exporting
# kimm.export.export_onnx(reparameterized_model, 224, "model.onnx")
```
## Installation
```bash
pip install keras kimm -U
```
> [!IMPORTANT]
> Make sure you have installed a supported backend for Keras.
## Quickstart
### Image classification using the model pretrained on ImageNet
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/14WxYgVjlwCIO9MwqPYW-dskbTL2UHsVN?usp=sharing)
Using `kimm.models.VisionTransformerTiny16`:
<div align="center">
<img width="50%" src="https://github.com/james77777778/keras-image-models/assets/20734616/7caa4e5e-8561-425b-aaf2-6ae44ac3ea00" alt="african_elephant">
</div>
```bash
1/1 ━━━━━━━━━━━━━━━━━━━━ 1s 1s/step
Predicted: [('n02504458', 'African_elephant', 0.6895825), ('n01871265', 'tusker', 0.17934209), ('n02504013', 'Indian_elephant', 0.12927249)]
```
### An end-to-end example: fine-tuning an image classification model on a cats vs. dogs dataset
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1IbqfqG2NKEOKvBOznIPT1kjOdVPfThmd?usp=sharing)
Using `kimm.models.EfficientNetLiteB0`:
<div align="center">
<img width="75%" src="https://github.com/james77777778/kimm/assets/20734616/cbfc0773-a3fa-407d-be9a-fba4f19da6d3" alt="kimm_prediction_0">
<img width="75%" src="https://github.com/james77777778/kimm/assets/20734616/2eac0831-75bb-4790-a3af-412c3e09cf8f" alt="kimm_prediction_1">
</div>
Reference: [Transfer learning & fine-tuning (keras.io)](https://keras.io/guides/transfer_learning/#an-endtoend-example-finetuning-an-image-classification-model-on-a-cats-vs-dogs-dataset)
### Grad-CAM
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1h25VmsYDOLL6BNbRPEVOh1arIgcEoHu6?usp=sharing)
Using `kimm.models.MobileViTS`:
<div align="center">
<img width="50%" src="https://github.com/james77777778/kimm/assets/20734616/cb5022a3-aaea-4324-a9cd-3d2e63a0a6b2" alt="grad_cam">
</div>
Reference: [Grad-CAM class activation visualization (keras.io)](https://keras.io/examples/vision/grad_cam/)
## Model Zoo
|Model|Paper|Weights are ported from|API (`kimm.models.*`)|
|-|-|-|-|
|ConvMixer|[ICLR 2022 Submission](https://arxiv.org/abs/2201.09792)|`timm`|`ConvMixer*`|
|ConvNeXt|[CVPR 2022](https://arxiv.org/abs/2201.03545)|`timm`|`ConvNeXt*`|
|DenseNet|[CVPR 2017](https://arxiv.org/abs/1608.06993)|`timm`|`DenseNet*`|
|EfficientNet|[ICML 2019](https://arxiv.org/abs/1905.11946)|`timm`|`EfficientNet*`|
|EfficientNetLite|[ICML 2019](https://arxiv.org/abs/1905.11946)|`timm`|`EfficientNetLite*`|
|EfficientNetV2|[ICML 2021](https://arxiv.org/abs/2104.00298)|`timm`|`EfficientNetV2*`|
|GhostNet|[CVPR 2020](https://arxiv.org/abs/1911.11907)|`timm`|`GhostNet*`|
|GhostNetV2|[NeurIPS 2022](https://arxiv.org/abs/2211.12905)|`timm`|`GhostNetV2*`|
|GhostNetV3|[arXiv 2024](https://arxiv.org/abs/2404.11202)|`github`|`GhostNetV3*`|
|HGNet||`timm`|`HGNet*`|
|HGNetV2||`timm`|`HGNetV2*`|
|InceptionNeXt|[CVPR 2024](https://arxiv.org/abs/2303.16900)|`timm`|`InceptionNeXt*`|
|InceptionV3|[CVPR 2016](https://arxiv.org/abs/1512.00567)|`timm`|`InceptionV3`|
|LCNet|[arXiv 2021](https://arxiv.org/abs/2109.15099)|`timm`|`LCNet*`|
|MobileNetV2|[CVPR 2018](https://arxiv.org/abs/1801.04381)|`timm`|`MobileNetV2*`|
|MobileNetV3|[ICCV 2019](https://arxiv.org/abs/1905.02244)|`timm`|`MobileNetV3*`|
|MobileOne|[CVPR 2023](https://arxiv.org/abs/2206.04040)|`timm`|`MobileOne*`|
|MobileViT|[ICLR 2022](https://arxiv.org/abs/2110.02178)|`timm`|`MobileViT*`|
|MobileViTV2|[arXiv 2022](https://arxiv.org/abs/2206.02680)|`timm`|`MobileViTV2*`|
|RegNet|[CVPR 2020](https://arxiv.org/abs/2003.13678)|`timm`|`RegNet*`|
|RepVGG|[CVPR 2021](https://arxiv.org/abs/2101.03697)|`timm`|`RepVGG*`|
|ResNet|[CVPR 2015](https://arxiv.org/abs/1512.03385)|`timm`|`ResNet*`|
|TinyNet|[NeurIPS 2020](https://arxiv.org/abs/2010.14819)|`timm`|`TinyNet*`|
|VGG|[ICLR 2015](https://arxiv.org/abs/1409.1556)|`timm`|`VGG*`|
|ViT|[ICLR 2021](https://arxiv.org/abs/2010.11929)|`timm`|`VisionTransformer*`|
|Xception|[CVPR 2017](https://arxiv.org/abs/1610.02357)|`keras`|`Xception`|
The export scripts can be found in `tools/convert_*.py`.
## License
Please refer to [timm](https://github.com/huggingface/pytorch-image-models#licenses) as this project is built upon it.
### `kimm` Code
The code here is licensed Apache 2.0.
## Acknowledgements
Thanks for these awesome projects that were used in `kimm`
- [https://github.com/keras-team/keras](https://github.com/keras-team/keras)
- [https://github.com/huggingface/pytorch-image-models](https://github.com/huggingface/pytorch-image-models)
## Citing
### BibTeX
```bash
@misc{rw2019timm,
author = {Ross Wightman},
title = {PyTorch Image Models},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
doi = {10.5281/zenodo.4414861},
howpublished = {\url{https://github.com/rwightman/pytorch-image-models}}
}
```
```bash
@misc{hy2024kimm,
author = {Hongyu Chiu},
title = {Keras Image Models},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/james77777778/kimm}}
}
```
Raw data
{
"_id": null,
"home_page": null,
"name": "kimm",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "Hong-Yu Chiu <james77777778@gmail.com>",
"keywords": "deep-learning, model-zoo, keras, jax, tensorflow, torch, imagenet, pretrained-weights, timm",
"author": null,
"author_email": "Hong-Yu Chiu <james77777778@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/31/9e/4552f921b25f15f170f21ebfbd695891100b7062282e5156ee95edb99f46/kimm-0.2.5.tar.gz",
"platform": null,
"description": "<!-- markdownlint-disable MD033 -->\n<!-- markdownlint-disable MD041 -->\n\n<div align=\"center\">\n<img width=\"50%\" src=\"https://github.com/james77777778/kimm/assets/20734616/b21db8f2-307b-4791-b93d-e913e45fb238\" alt=\"KIMM\">\n\n[![Keras](https://img.shields.io/badge/keras-v3.3.0+-success.svg)](https://github.com/keras-team/keras)\n[![PyPI](https://img.shields.io/pypi/v/kimm)](https://pypi.org/project/kimm/)\n[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/james77777778/kimm/issues)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/james77777778/keras-image-models/actions.yml?label=tests)](https://github.com/james77777778/keras-image-models/actions/workflows/actions.yml?query=branch%3Amain++)\n[![codecov](https://codecov.io/gh/james77777778/keras-image-models/graph/badge.svg?token=eEha1SR80D)](https://codecov.io/gh/james77777778/keras-image-models)\n</div>\n\n# Keras Image Models\n\n- [Latest Updates](#latest-updates)\n- [Introduction](#introduction)\n- [Usage](#usage)\n- [Installation](#installation)\n- [Quickstart](#quickstart)\n - [Image classification with ImageNet weights](#image-classification-using-the-model-pretrained-on-imagenet)\n - [An end-to-end fine-tuning example: cats vs. dogs dataset](#an-end-to-end-example-fine-tuning-an-image-classification-model-on-a-cats-vs-dogs-dataset)\n - [Grad-CAM](#grad-cam)\n- [Model Zoo](#model-zoo)\n- [License](#license)\n- [Acknowledgements](#acknowledgements)\n\n## Latest Updates\n\n2024/06/02:\n\n- Add docstrings for all `kimm` models.\n- Merge reparameterizable layers into 1 `ReparameterizableConv2D`\n- Add `GhostNetV3*` from [huawei-noah/Efficient-AI-Backbones](https://github.com/huawei-noah/Efficient-AI-Backbones)\n\n## Introduction\n\n**K**eras **Im**age **M**odels (`kimm`) is a collection of image models, blocks and layers written in Keras 3. The goal is to offer SOTA models with pretrained weights in a user-friendly manner.\n\n**KIMM** is:\n\n- \ud83d\ude80 A model zoo where almost all models come with **pre-trained weights on ImageNet**.\n- \ud83e\uddf0 Providing APIs to export models to `.tflite` and `.onnx`.\n- \ud83d\udd27 Supporting the **reparameterization** technique.\n- \u2728 Integrated with **feature extraction** capability.\n\n## Usage\n\n- `kimm.list_models`\n- `kimm.models.*.available_feature_keys`\n- `kimm.models.*(...)`\n- `kimm.models.*(..., feature_extractor=True, feature_keys=[...])`\n\n```python\nimport keras\nimport kimm\n\n# List available models\nprint(kimm.list_models(\"mobileone\", weights=\"imagenet\"))\n# ['MobileOneS0', 'MobileOneS1', 'MobileOneS2', 'MobileOneS3']\n\n# Initialize model with pretrained ImageNet weights\n# Note: all `kimm` models expect inputs in the value range of [0, 255] by\n# default if `incldue_preprocessing=True`\nx = keras.random.uniform([1, 224, 224, 3]) * 255.0\nmodel = kimm.models.MobileOneS0()\ny = model.predict(x)\nprint(y.shape)\n# (1, 1000)\n\n# Print some basic information about the model\nprint(model)\n# <MobileOneS0 name=MobileOneS0, input_shape=(None, None, None, 3),\n# default_size=224, preprocessing_mode=\"imagenet\", feature_extractor=False,\n# feature_keys=None>\n# This information can also be accessed through properties\nprint(model.input_shape, model.default_size, model.preprocessing_mode)\n\n# List available feature keys of the model class\nprint(kimm.models.MobileOneS0.available_feature_keys)\n# ['STEM_S2', 'BLOCK0_S4', 'BLOCK1_S8', 'BLOCK2_S16', 'BLOCK3_S32']\n\n# Enable feature extraction by setting `feature_extractor=True`\n# `feature_keys` can be optionally specified\nfeature_extractor = kimm.models.MobileOneS0(\n feature_extractor=True, feature_keys=[\"BLOCK2_S16\", \"BLOCK3_S32\"]\n)\nfeatures = feature_extractor.predict(x)\nfor feature_name, feature in features.items():\n print(feature_name, feature.shape)\n# BLOCK2_S16 (1, 14, 14, 256), BLOCK3_S32 (1, 7, 7, 1024), ...\n```\n\n> [!NOTE] \n> All models in `kimm` expect inputs in the value range of [0, 255] by default if `incldue_preprocessing=True`.\n> Some models only accept static inputs. You should explicitly specify the input shape for these models by `input_shape=[*, *, 3]`.\n\n## Advanced Usage\n\n- `kimm.utils.get_reparameterized_model`\n- `kimm.export.export_tflite`\n- `kimm.export.export_onnx`\n\n```python\nimport keras\nimport kimm\nimport numpy as np\n\n# Initialize a reparameterizable model\nx = keras.random.uniform([1, 224, 224, 3]) * 255.0\nmodel = kimm.models.MobileOneS0()\ny = model.predict(x)\n\n# Get reparameterized model by kimm.utils.get_reparameterized_model\nreparameterized_model = kimm.utils.get_reparameterized_model(model)\ny2 = reparameterized_model.predict(x)\nnp.testing.assert_allclose(\n keras.ops.convert_to_numpy(y), keras.ops.convert_to_numpy(y2), atol=1e-3\n)\n\n# Export model to tflite format\nkimm.export.export_tflite(reparameterized_model, 224, \"model.tflite\")\n\n# Export model to onnx format\n# Note: must be \"channels_first\" format before the exporting\n# kimm.export.export_onnx(reparameterized_model, 224, \"model.onnx\")\n```\n\n## Installation\n\n```bash\npip install keras kimm -U\n```\n\n> [!IMPORTANT] \n> Make sure you have installed a supported backend for Keras.\n\n## Quickstart\n\n### Image classification using the model pretrained on ImageNet\n\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/14WxYgVjlwCIO9MwqPYW-dskbTL2UHsVN?usp=sharing)\n\nUsing `kimm.models.VisionTransformerTiny16`:\n\n<div align=\"center\">\n<img width=\"50%\" src=\"https://github.com/james77777778/keras-image-models/assets/20734616/7caa4e5e-8561-425b-aaf2-6ae44ac3ea00\" alt=\"african_elephant\">\n</div>\n\n```bash\n1/1 \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1s 1s/step\nPredicted: [('n02504458', 'African_elephant', 0.6895825), ('n01871265', 'tusker', 0.17934209), ('n02504013', 'Indian_elephant', 0.12927249)]\n```\n\n### An end-to-end example: fine-tuning an image classification model on a cats vs. dogs dataset\n\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1IbqfqG2NKEOKvBOznIPT1kjOdVPfThmd?usp=sharing)\n\nUsing `kimm.models.EfficientNetLiteB0`:\n\n<div align=\"center\">\n<img width=\"75%\" src=\"https://github.com/james77777778/kimm/assets/20734616/cbfc0773-a3fa-407d-be9a-fba4f19da6d3\" alt=\"kimm_prediction_0\">\n\n<img width=\"75%\" src=\"https://github.com/james77777778/kimm/assets/20734616/2eac0831-75bb-4790-a3af-412c3e09cf8f\" alt=\"kimm_prediction_1\">\n</div>\n\nReference: [Transfer learning & fine-tuning (keras.io)](https://keras.io/guides/transfer_learning/#an-endtoend-example-finetuning-an-image-classification-model-on-a-cats-vs-dogs-dataset)\n\n### Grad-CAM\n\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1h25VmsYDOLL6BNbRPEVOh1arIgcEoHu6?usp=sharing)\n\nUsing `kimm.models.MobileViTS`:\n\n<div align=\"center\">\n<img width=\"50%\" src=\"https://github.com/james77777778/kimm/assets/20734616/cb5022a3-aaea-4324-a9cd-3d2e63a0a6b2\" alt=\"grad_cam\">\n</div>\n\nReference: [Grad-CAM class activation visualization (keras.io)](https://keras.io/examples/vision/grad_cam/)\n\n## Model Zoo\n\n|Model|Paper|Weights are ported from|API (`kimm.models.*`)|\n|-|-|-|-|\n|ConvMixer|[ICLR 2022 Submission](https://arxiv.org/abs/2201.09792)|`timm`|`ConvMixer*`|\n|ConvNeXt|[CVPR 2022](https://arxiv.org/abs/2201.03545)|`timm`|`ConvNeXt*`|\n|DenseNet|[CVPR 2017](https://arxiv.org/abs/1608.06993)|`timm`|`DenseNet*`|\n|EfficientNet|[ICML 2019](https://arxiv.org/abs/1905.11946)|`timm`|`EfficientNet*`|\n|EfficientNetLite|[ICML 2019](https://arxiv.org/abs/1905.11946)|`timm`|`EfficientNetLite*`|\n|EfficientNetV2|[ICML 2021](https://arxiv.org/abs/2104.00298)|`timm`|`EfficientNetV2*`|\n|GhostNet|[CVPR 2020](https://arxiv.org/abs/1911.11907)|`timm`|`GhostNet*`|\n|GhostNetV2|[NeurIPS 2022](https://arxiv.org/abs/2211.12905)|`timm`|`GhostNetV2*`|\n|GhostNetV3|[arXiv 2024](https://arxiv.org/abs/2404.11202)|`github`|`GhostNetV3*`|\n|HGNet||`timm`|`HGNet*`|\n|HGNetV2||`timm`|`HGNetV2*`|\n|InceptionNeXt|[CVPR 2024](https://arxiv.org/abs/2303.16900)|`timm`|`InceptionNeXt*`|\n|InceptionV3|[CVPR 2016](https://arxiv.org/abs/1512.00567)|`timm`|`InceptionV3`|\n|LCNet|[arXiv 2021](https://arxiv.org/abs/2109.15099)|`timm`|`LCNet*`|\n|MobileNetV2|[CVPR 2018](https://arxiv.org/abs/1801.04381)|`timm`|`MobileNetV2*`|\n|MobileNetV3|[ICCV 2019](https://arxiv.org/abs/1905.02244)|`timm`|`MobileNetV3*`|\n|MobileOne|[CVPR 2023](https://arxiv.org/abs/2206.04040)|`timm`|`MobileOne*`|\n|MobileViT|[ICLR 2022](https://arxiv.org/abs/2110.02178)|`timm`|`MobileViT*`|\n|MobileViTV2|[arXiv 2022](https://arxiv.org/abs/2206.02680)|`timm`|`MobileViTV2*`|\n|RegNet|[CVPR 2020](https://arxiv.org/abs/2003.13678)|`timm`|`RegNet*`|\n|RepVGG|[CVPR 2021](https://arxiv.org/abs/2101.03697)|`timm`|`RepVGG*`|\n|ResNet|[CVPR 2015](https://arxiv.org/abs/1512.03385)|`timm`|`ResNet*`|\n|TinyNet|[NeurIPS 2020](https://arxiv.org/abs/2010.14819)|`timm`|`TinyNet*`|\n|VGG|[ICLR 2015](https://arxiv.org/abs/1409.1556)|`timm`|`VGG*`|\n|ViT|[ICLR 2021](https://arxiv.org/abs/2010.11929)|`timm`|`VisionTransformer*`|\n|Xception|[CVPR 2017](https://arxiv.org/abs/1610.02357)|`keras`|`Xception`|\n\nThe export scripts can be found in `tools/convert_*.py`.\n\n## License\n\nPlease refer to [timm](https://github.com/huggingface/pytorch-image-models#licenses) as this project is built upon it.\n\n### `kimm` Code\n\nThe code here is licensed Apache 2.0.\n\n## Acknowledgements\n\nThanks for these awesome projects that were used in `kimm`\n\n- [https://github.com/keras-team/keras](https://github.com/keras-team/keras)\n- [https://github.com/huggingface/pytorch-image-models](https://github.com/huggingface/pytorch-image-models)\n\n## Citing\n\n### BibTeX\n\n```bash\n@misc{rw2019timm,\n author = {Ross Wightman},\n title = {PyTorch Image Models},\n year = {2019},\n publisher = {GitHub},\n journal = {GitHub repository},\n doi = {10.5281/zenodo.4414861},\n howpublished = {\\url{https://github.com/rwightman/pytorch-image-models}}\n}\n```\n\n```bash\n@misc{hy2024kimm,\n author = {Hongyu Chiu},\n title = {Keras Image Models},\n year = {2024},\n publisher = {GitHub},\n journal = {GitHub repository},\n howpublished = {\\url{https://github.com/james77777778/kimm}}\n}\n```\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "A Keras model zoo with pretrained weights.",
"version": "0.2.5",
"project_urls": {
"Documentation": "https://github.com/james77777778/keras-image-models",
"Homepage": "https://github.com/james77777778/keras-image-models",
"Issues": "https://github.com/james77777778/keras-image-models/issues",
"Repository": "https://github.com/james77777778/keras-image-models.git"
},
"split_keywords": [
"deep-learning",
" model-zoo",
" keras",
" jax",
" tensorflow",
" torch",
" imagenet",
" pretrained-weights",
" timm"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "01d66e92201aa07ce13e7453537b5df141ad020b5153b956c7b5e6c1da21361b",
"md5": "5958645501092871581da24aa3342a51",
"sha256": "a3cdb835e572937c3731376a2af035077ed025de699f70ef5d1e61436e2d9d47"
},
"downloads": -1,
"filename": "kimm-0.2.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5958645501092871581da24aa3342a51",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 123387,
"upload_time": "2024-10-20T13:53:18",
"upload_time_iso_8601": "2024-10-20T13:53:18.516719Z",
"url": "https://files.pythonhosted.org/packages/01/d6/6e92201aa07ce13e7453537b5df141ad020b5153b956c7b5e6c1da21361b/kimm-0.2.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "319e4552f921b25f15f170f21ebfbd695891100b7062282e5156ee95edb99f46",
"md5": "7c0141171840aa16a4a208e5dba72812",
"sha256": "fa2446e6fd8586a6c831a0e05c133004cdcb274e6c5d42b10c89c0e620b846fd"
},
"downloads": -1,
"filename": "kimm-0.2.5.tar.gz",
"has_sig": false,
"md5_digest": "7c0141171840aa16a4a208e5dba72812",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 75053,
"upload_time": "2024-10-20T13:53:19",
"upload_time_iso_8601": "2024-10-20T13:53:19.651778Z",
"url": "https://files.pythonhosted.org/packages/31/9e/4552f921b25f15f170f21ebfbd695891100b7062282e5156ee95edb99f46/kimm-0.2.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-20 13:53:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "james77777778",
"github_project": "keras-image-models",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "tensorflow-cpu",
"specs": [
[
">=",
"2.16.1"
]
]
},
{
"name": "torch",
"specs": [
[
">=",
"2.1.0"
]
]
},
{
"name": "torchvision",
"specs": [
[
">=",
"0.16.0"
]
]
},
{
"name": "jax",
"specs": []
},
{
"name": "keras",
"specs": [
[
">=",
"3.3.0"
]
]
}
],
"lcname": "kimm"
}