pip install timmimporttimmimporttorch from PILimportImageimportrequests from ioimportBytesIO#1.加载模型(ViTBase版本16x16图块在ImageNet-1k上预训练)# 设置 pretrainedTrue自动下载权重 modeltimm.create_model(vit_base_patch16_224,pretrainedTrue)model.eval()# 切换到推理模式 #2.获取数据预处理流程(模型自带确保尺寸和归一化参数正确)data_configtimm.data.resolve_model_data_config(model)transformstimm.data.create_transform(**data_config,is_trainingFalse)#3.读取图片(示例从URL读取你也可以改成本地路径)# 如果是本地文件imgImage.open(your_image.jpg).convert(RGB)urlhttp://images.cocodataset.org/val2017/000000039769.jpg# 两张猫的示例图 imgImage.open(requests.get(url,streamTrue).raw).convert(RGB)#4.预处理并推理 tensor_imgtransforms(img).unsqueeze(0)# 增加 batch 维度withtorch.no_grad():outputsmodel(tensor_img)#5.解析结果(获取前5个预测类别)probabilitiestorch.nn.functional.softmax(outputs[0],dim0)# 下载ImageNet标签 labels_urlhttps://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txtlabelsrequests.get(labels_url).text.splitlines()# 打印Top5top5_prob,top5_catidtorch.topk(probabilities,5)foriinrange(top5_prob.size(0)):print(f{labels[top5_catid[i]]}: {top5_prob[i].item():.4f})