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安装最新的KerasCV版本,只需运行:
pip install --upgrade keras-cv tensorflow
当前有两种方法可以使用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对您的研究有帮助,我们感谢您的引用。 这是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内容。