体验地址:http://154.12.16.239:8080/catdog
cat_dog_classifier_gpu
猫狗分类模型 - 基于 ResNet18 的二分类图像分类模型
模型信息
- 骨干网络: ResNet18
- 分类类别: Cat, Dog (2类)
- 训练数据: 24998 张图片
- 验证准确率: 98.64%
- 训练设备: NVIDIA GeForce GTX 1060
- 模型格式: GGUF (42.64 MB)
使用方法
Python 推理
import torch
from torchvision import transforms, models
from PIL import Image
import torch.nn as nn
class CatDogNet(nn.Module):
def __init__(self):
super().__init__()
self.backbone = models.resnet18(weights=None)
self.backbone.fc = nn.Linear(512, 2)
def forward(self, x):
return self.backbone(x)
# 加载模型
model = CatDogNet()
model.load_state_dict(torch.load('cat_dog_model.pth', map_location='cpu', weights_only=True))
model.eval()
# 预处理
transform = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
# 预测
img = Image.open('test.jpg').convert('RGB')
img_tensor = transform(img).unsqueeze(0)
with torch.no_grad():
output = model(img_tensor)
probs = torch.nn.functional.softmax(output, dim=1)
class_names = ['Cat', 'Dog']
pred_class = class_names[probs.argmax().item()]
print(f'预测类别: {pred_class}')
GGUF 格式加载
from gguf_inference import GGUFLoader, ResNet18Inference
# 加载 GGUF 模型
loader = GGUFLoader('cat_dog_classifier_gpu.gguf')
weights = loader.get_weights()
# 创建推理引擎
engine = ResNet18Inference(weights)
# 预测
import numpy as np
from PIL import Image
img = Image.open('test.jpg').convert('RGB')
img = img.resize((224, 224))
img_array = np.array(img, dtype=np.float32) / 255.0
img_array = (img_array - [0.485, 0.456, 0.406]) / [0.229, 0.224, 0.225]
img_array = img_array.transpose(2, 0, 1)[np.newaxis, ...]
output = engine.forward(img_array)
pred_class = ['Cat', 'Dog'][output.argmax().item()]
模型文件
cat_dog_classifier_gpu.gguf- GGUF 格式模型 (42.64 MB)cat_dog_model.pth- PyTorch 权重文件gguf_inference_pytorch.py- Python 推理脚本
训练参数
- Epochs: 15
- Batch size: 64
- Learning rate: 0.0005
- Optimizer: Adam
- Scheduler: StepLR (step_size=3, gamma=0.5)
训练过程可视化
训练汇总图

详细图表
1. 准确率对比

2. 损失变化曲线

3. 稳定性分析

训练统计
| 指标 | 值 |
|---|---|
| 最佳验证准确率 | 98.74% (Epoch 11) |
| 最终训练准确率 | 98.98% |
| 最终验证准确率 | 98.64% |
| 训练损失 | 0.0185 |
| 验证损失 | 0.0512 |
| 波动范围 | ±0.2% (几乎无波动) |
许可证
MIT License