MNIST手写数字识别_softmax简单线性回归03

MNIST手写数字识别_softmax简单线性回归

加载数据集,得到训练集和测试集:

mnist = input_data.read_data_sets('D:\pythonProject1\MNIST\MNIST_data',one_hot=True) 
train_X = mnist.train.images
train_Y = mnist.train.labels
test_X = mnist.test.images
test_Y = mnist.test.labels

数据归一化处理:

#数据归一化 min-max 标准化
train_X /= 255
test_X /= 255

数据归一化的主要作用有:
1.去掉量纲,使指标之间具有可比性。
2.将数据限制在一定区间,使运算更为便捷
数据归一化的常用方法:
1.min-max 标准化,使结果映射到0-1之间
x = (x - min) / (max - min)
max为样本数据的最大值,min为样本数据的最小值
2.Z-score 标准化
给予原始数据的均值和标准差进行数据的标准化。处理后的数据符合标准正态分布,即均值为0,标准差为1
x = (x − μ) / σ
μ为样本均值,σ为样本标准差

接下来就可以构建模型啦
深度学习的主要流程为:
1.数据获取(√)
2.数据处理 (√)
3.模型的创建与训练
4.模型测试与评估
5.模型预测

# 构建模型
def create_model():
    #利用Sequential方式构建模型
    model = Sequential()
    model.add(Dense(10))   # 卷积层:提取图像的局部特征  输入为10维的数据??不确定
    model.add(Activation('softmax')) # 激活函数为softmax
    # 编译模型
   model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
   # 设置模型的相关参数:损失函数,优化器,评价指标
    return model
model = create_model()

模型的基础已经构建好了,现在开始训练模型了。

# 模型训练
history = model.fit(train_X,
                    train_Y,
                    batch_size=200, # 每次训练的送入网络中的样本个数
                    epochs=10, # 训练样本送入网络中的次数
                    verbose=2, # 日志输出的复杂度
                    validation_data=(test_X, test_Y))

print(history.history)

使用fit即可训练模型,训练结果保存到history中,我们就可以看到训练的过程啦。

在这里插入图片描述
batch_size=200:每次传入200个样本进行训练,一共传入275次,200×275=55000,loss为训练集的损失值,accuracy为训练集的正确率,val_loss为测试值的损失,val_accuracy为测试集的正确率。loss的值越小越好,accuracy的值越大越好。

我们可以绘制一个折线图,方便观察loss和accuracy的变化趋势。

fig = plt.figure()
# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值