KerasCV

KerasCV

Star

KerasCV是一个模块化计算机视觉组件的库,可以与TensorFlow、JAX或PyTorch原生工作。基于Keras 3构建,这些模型、层、指标、回调等可以在任何框架中进行训练和序列化,并可以在另一个框架中重新使用,而无需昂贵的迁移。

KerasCV可以理解为Keras API的横向扩展:这些组件是新的第一方Keras对象,过于专业化以至于无法添加到核心Keras中。它们在打磨水平和向后兼容性保障上与核心Keras API相同,并由Keras团队维护。

我们的API辅助进行常见的计算机视觉任务,如数据增强、分类、目标检测、分割、图像生成等。应用计算机视觉的工程师可以利用KerasCV快速组装生产级、最先进的训练和推理管道,以应对所有这些常见任务。

快速链接

安装

KerasCV支持Keras 2和Keras 3。我们建议所有新用户使用Keras 3,因为它使KerasCV模型和层能够与JAX、TensorFlow和PyTorch一起使用。

Keras 2安装

要使用Keras 2安装最新的KerasCV版本,只需运行:

pip install --upgrade keras-cv tensorflow

Keras 3安装

当前有两种方法可以使用KerasCV安装Keras 3。要安装KerasCV和Keras 3的稳定版本,您应该在安装KerasCV安装Keras 3。这是一个临时步骤,因为TensorFlow被锁定为Keras 2,并且在TensorFlow 2.16之后将不再需要。

pip install --upgrade keras-cv tensorflow
pip install --upgrade keras

要安装KerasCV和Keras的最新更改构建,您可以使用我们的夜间包。

pip install --upgrade keras-cv-nightly tf-nightly

注意: Keras 3不能与TensorFlow 2.14或更早版本一起使用。

请参见Getting started with Keras获取有关一般安装Keras和与不同框架兼容性的更多信息。

快速入门

import os
os.environ["KERAS_BACKEND"] = "tensorflow"  # 或 "jax" 或 "torch"!

import tensorflow as tf
import keras_cv
import tensorflow_datasets as tfds
import keras

# 创建一个带有增强功能的预处理管道
BATCH_SIZE = 16
NUM_CLASSES = 3
augmenter = keras_cv.layers.Augmenter(
    [
        keras_cv.layers.RandomFlip(),
        keras_cv.layers.RandAugment(value_range=(0, 255)),
        keras_cv.layers.CutMix(),
    ],
)

def preprocess_data(images, labels, augment=False):
    labels = tf.one_hot(labels, NUM_CLASSES)
    inputs = {"images": images, "labels": labels}
    outputs = inputs
    if augment:
        outputs = augmenter(outputs)
    return outputs['images'], outputs['labels']

train_dataset, test_dataset = tfds.load(
    'rock_paper_scissors',
    as_supervised=True,
    split=['train', 'test'],
)
train_dataset = train_dataset.batch(BATCH_SIZE).map(
    lambda x, y: preprocess_data(x, y, augment=True),
        num_parallel_calls=tf.data.AUTOTUNE).prefetch(
            tf.data.AUTOTUNE)
test_dataset = test_dataset.batch(BATCH_SIZE).map(
    preprocess_data, num_parallel_calls=tf.data.AUTOTUNE).prefetch(
        tf.data.AUTOTUNE)

# 使用预训练的主干创建模型
backbone = keras_cv.models.EfficientNetV2Backbone.from_preset(
    "efficientnetv2_b0_imagenet"
)
model = keras_cv.models.ImageClassifier(
    backbone=backbone,
    num_classes=NUM_CLASSES,
    activation="softmax",
)
model.compile(
    loss='categorical_crossentropy',
    optimizer=keras.optimizers.Adam(learning_rate=1e-5),
    metrics=['accuracy']
)

# 训练模型
model.fit(
    train_dataset,
    validation_data=test_dataset,
    epochs=8,
)

免责声明

KerasCV通过keras_cv.models API提供对预训练模型的访问。这些预训练模型是以“现状”提供的,没有任何形式的保证或条件。以下底层模型是由第三方提供的,并受单独的许可证约束:StableDiffusion,Vision Transformer

引用KerasCV

如果KerasCV对您的研究有帮助,我们感谢您的引用。 这是BibTeX条目: @misc{wood2022kerascv, title={KerasCV}, author={Wood, Luke and Tan, Zhenyu and Stenbit, Ian and Bischof, Jonathan and Zhu, Scott and Chollet, Fran\c{c}ois and Sreepathihalli, Divyashree and Sampath, Ramesh and others}, year={2022}, howpublished={\url{https://github.com/keras-team/keras-cv}}, } 抱歉,您似乎没有提供任何内容,请提供需要翻译的Markdown内容。