郭靖 MNIST CNN Model

模型描述

这是一个基于CNN的MNIST手写数字识别模型,名为"郭靖"。模型使用PyTorch实现,并与Hugging Face Transformers生态系统完全兼容。

模型架构

  • 卷积层: 2个卷积块,每个块包含2个卷积层 + 批归一化 + ReLU + 最大池化 + Dropout
  • 全连接层: 2个全连接层(带批归一化和Dropout)
  • 输出层: 10个类别(数字0-9)
  • 参数量: 约168万可训练参数

训练详情

  • 数据集: MNIST手写数字数据集
  • 优化器: Adam
  • 损失函数: 交叉熵损失
  • 学习率调度: ReduceLROnPlateau
  • 准确率: 在测试集上达到 >98% 的准确率

使用方法

基本使用

from transformers import AutoModelForImageClassification, AutoImageProcessor
from PIL import Image
import torch

# 加载模型和处理器
model = AutoModelForImageClassification.from_pretrained("Akimotorakiyu/GuoJing-model")
processor = AutoImageProcessor.from_pretrained("Akimotorakiyu/GuoJing-model")

# 加载并预处理图像
image = Image.open("path/to/your/image.png").convert("L")  # 转换为灰度图
inputs = processor(images=image, return_tensors="pt")

# 推理
with torch.no_grad():
    outputs = model(**inputs)
    predicted_class = outputs.logits.argmax(-1).item()
    print(f"Predicted digit: {predicted_class}")

批量推理

import torch
from torchvision import datasets, transforms
from transformers import AutoModelForImageClassification

# 加载模型
model = AutoModelForImageClassification.from_pretrained("Akimotorakiyu/GuoJing-model")
model.eval()

# 数据预处理
transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.1307,), (0.3081,))
])

# 加载测试数据
test_dataset = datasets.MNIST(root='./data', train=False, download=True, transform=transform)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=32)

# 评估
correct = 0
total = 0
with torch.no_grad():
    for images, labels in test_loader:
        outputs = model(pixel_values=images)
        _, predicted = torch.max(outputs.logits, 1)
        total += labels.size(0)
        correct += (predicted == labels).sum().item()

print(f'Test Accuracy: {100 * correct / total:.2f}%')

模型配置

{
  "conv_channels": [32, 64],
  "conv_kernel_size": 3,
  "conv_padding": 1,
  "pool_kernel_size": 2,
  "pool_stride": 2,
  "conv_dropout": 0.25,
  "fc_dropout": 0.5,
  "hidden_size": 512,
  "input_channels": 1,
  "num_classes": 10,
  "image_size": 28,
  "normalize_mean": 0.1307,
  "normalize_std": 0.3081
}

训练数据预处理

  • ToTensor(): 将PIL图像转换为张量
  • Normalize((0.1307,), (0.3081,)): MNIST标准化值

性能指标

  • 训练准确率: >99%
  • 测试准确率: >98%
  • 推理速度: <1ms per image (on GPU)

模型文件说明

  • pytorch_model.bin: 训练好的模型权重
  • config.json: 模型配置文件
  • preprocessor_config.json: 图像预处理配置

技术特点

  • ✅ Transformers生态系统兼容
  • ✅ AutoClass支持
  • ✅ 批量推理优化
  • ✅ GPU/CPU双支持
  • ✅ 内存效率优化

限制和注意事项

  1. 模型专门针对MNIST数据集训练,主要用于手写数字识别
  2. 输入图像应为28x28像素的灰度图像
  3. 对于其他类型的图像识别任务,需要重新训练

许可证

MIT License

作者

Akimotorakiyu


注意: 这是一个名为"郭靖"的MNIST分类模型,以纪念这位武侠小说中的传奇人物,象征着模型的稳健和可靠。

Downloads last month
48
Safetensors
Model size
1.68M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support