深度学习实验:Softmax实现手写数字识别_案例1 softmax实现手写数字识别

    logits_set, labels_set = [], []
    for images, labels in self.test_loader:
        logits = self.model.forward(images)
        logits_set.append(logits)
        labels_set.append(labels)

    logits = np.concatenate(logits_set)
    labels = np.concatenate(labels_set)
    loss, acc = self.criterion.forward(logits, labels)
    return loss, acc

if name == ‘main’:
# You can modify the hyerparameters by yourself.
relu_cfg = {
‘data_root’: ‘data’,
‘max_epoch’: 10,
‘batch_size’: 100,
‘learning_rate’: 0.1,
‘momentum’: 0.9,
‘display_freq’: 50,
‘activation_function’: ‘relu’,
}

runner = Solver(relu_cfg)
relu_loss, relu_acc = runner.train()

test_loss, test_acc = runner.test()
print('Final test accuracy {:.4f}\n'.format(test_acc))

# You can modify the hyerparameters by yourself.
sigmoid_cfg = {
    'data_root': 'data',
    'max_epoch': 10,
    'batch_size': 100,
    'learning_rate': 0.1,
    'momentum': 0.9,
    'display_freq': 50,
    'activation_function': 'sigmoid',
}

runner = Solver(sigmoid_cfg)
sigmoid_loss, sigmoid_acc = runner.train()

test_loss, test_acc = runner.test()
print('Final test accuracy {:.4f}\n'.format(test_acc))

plot_loss_and_acc({
    "relu": [relu_loss, relu_acc],
    "sigmoid": [sigmoid_loss, sigmoid_acc],
})

dataloader.py



import os
import struct
import numpy as np

class Dataset(object):

def __init__(self, data_root, mode='train', num_classes=10):
    assert mode in ['train', 'val', 'test']

    # load images and labels
    kind = {'train': 'train', 'val': 'train', 'test': 't10k'}[mode]
    labels_path = os.path.join(data_root, '{}-labels-idx1-ubyte'.format(kind))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值