以下是一个使用ViT(Vision Transformer)在CIFAR10数据集上进行分类的示例代码,并输出准确率。
import tensorflow as tf
from tensorflow import keras
from vit_keras import vit
# 加载CIFAR10数据集
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
# 数据预处理
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0
# 构建ViT模型
model = vit.vit_b16(
image_size=32,
patch_size=4,
num_classes=10,
transformer_layers=12,
num_heads=8,
hidden_dim=512,
mlp_dim=2048,
)
# 编译模型
model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, batch_size=64, epochs=10, validation_split=0.1)
# 在测试集上评估模型准确率
_, accuracy = model.evaluate(x_test, y_test)
print('Test accuracy:', accuracy)
请注意,这只是一个示例代码,实际运行时可能需要根据具体情况进行适当的调整和优化。另外,为了能够执行该代码,你还需要安装相关依赖库,如tensorflow
、keras
以及适用于ViT的库(例如vit-keras
)。
内容由零声教学AI助手提供,问题来源于学员提问