【CNN从零开始系列之三】网络的训练

【CNN从零开始系列之三】网络的训练

训练模型

前面一章中已经定义好了网络模型,我们就用定义好的模型和数据集开始训练。具体实现如下:

avg_loss = -1
base_lr = 0.01
for i in range(10000):
    learning_rate = base_lr * (1 + 0.0001 * i) ** (-0.75)
    if i % 100 == 0:
        print("Testing ...")
        data.set_mode(data.TEST)
        acc_sum = 0
        for j in range(100):
            data.next_batch_test_data()
            accuracy = calc_accuracy(softmax.forward(), data.get_label())
            acc_sum = acc_sum + accuracy
        acc_sum = acc_sum / 100
        print("Accuracy = %.4f" % (acc_sum))
    data.set_mode(data.TRAIN)
    data.next_batch_train_data()
    softmax.forward()
    loss = softmax.calc_loss(data.get_label())
    if avg_loss == -1:
        avg_loss = loss
    else:
        avg_loss = avg_loss * 0.9 + 0.1 * loss
    print("iter = %-5d\tLoss = %.4f\tAvg loss = %.4f\tLearning rate = %f" % (i + 1, loss, avg_loss, learning_rate))
    softmax.backward(learning_rate)

#训练过程如下
最后能达到98%的准确度。

在这里插入图片描述

项目demo

源码链接

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值