郭靖 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双支持
- ✅ 内存效率优化
限制和注意事项
- 模型专门针对MNIST数据集训练,主要用于手写数字识别
- 输入图像应为28x28像素的灰度图像
- 对于其他类型的图像识别任务,需要重新训练
许可证
MIT License
作者
Akimotorakiyu
注意: 这是一个名为"郭靖"的MNIST分类模型,以纪念这位武侠小说中的传奇人物,象征着模型的稳健和可靠。
- Downloads last month
- 48