以下是一个使用 `gradio` 库创建简单图像分类应用的示例代码: ```python import gradio as gr import torch import torchvision.models as models import torchvision.transforms as transforms from PIL import Image # 加载预训练的 ResNet18 模型 model = models.resnet18(pretrained=True) model.eval() # 图像预处理转换 transform = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # 定义分类函数 def classify_image(image): image = Image.fromarray(image) image = transform(image).unsqueeze(0) with torch.no_grad(): output = model(image) probabilities = torch.nn.functional.softmax(output[0], dim=0) class_index = torch.argmax(probabilities).item() classes = ['飞机', '汽车', '鸟', '猫', '鹿', '狗', '青蛙', '马', '船', '卡车'] return classes[class_index] # 创建 Gradio 界面 iface = gr.Interface(fn=classify_image, inputs="image", outputs="text", title="图像分类示例") iface.launch() ``` 在上述代码中,我们首先加载了预训练的 `ResNet18` 模型,并定义了图像预处理的转换。然后,`classify_image` 函数用于对输入的图像进行分类。 使用 `gradio` 创建了一个界面,用户可以通过上传图像来获取分类结果。 这里只是一个简单的示例,实际应用中可能需要更复杂的模型、更多的类别和更精细的预处理。并且还需要根据您的具体需求修改类别列表和可能的模型架构。 [2024-08-27 15:27:24 | AI写代码神器 | 461点数解答]