import deepdish as dd
import numpy as np
from sklearn.linear_model import SGDClassifier

初始化随机梯度下降分类器(支持增量训练)
model = SGDClassifier(loss=”log_loss”, max_iter=100, random_state=42, warm_start=True)
分块加载训练集数据,每块 1000 个样本
chunk_size = 1000
print(“开始分块训练模型…”)
for chunk in dd.iterate(“image_classification_dataset.h5″, group=”train.features”, chunks=(chunk_size, 784)):
# 获取对应块的标签
chunk_labels = dd.io.load(“image_classification_dataset.h5″, group=”train.labels”)[chunk.index[0]:chunk.index[0]+chunk_size]
# 增量训练模型
model.partial_fit(chunk, chunk_labels, classes=np.arange(10))
在测试集上评估模型
test_data = dd.io.load(“image_classification_dataset.h5″, group=”test”)
test_pred = model.predict(test_data[“features”])
test_accuracy = accuracy_score(test_data[“labels”], test_pred)
print(f”分块训练后测试集准确率: {test_accuracy:.4f}”)
关注我,每天分享一个实用的Python自动化工具。

