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

本文介绍了如何使用Softmax实现手写数字识别。通过搭建数据集、定义损失函数和网络结构,展示了深度学习在图像识别中的应用。同时也强调了系统化学习和团队合作对于技术提升的重要性。
摘要由CSDN通过智能技术生成
    model.add(FCLayer(784, 10))
    return model

@staticmethod
def build_optimizer(model, cfg):
    return SGD(model, cfg['learning_rate'], cfg['momentum'])

def train(self):
    max_epoch = self.cfg['max_epoch']

    epoch_train_loss, epoch_train_acc = [], []
    for epoch in range(max_epoch):

        iteration_train_loss, iteration_train_acc = [], []
        for iteration, (images, labels) in enumerate(self.train_loader):
            # forward pass
            logits = self.model.forward(images)
            loss, acc = self.criterion.forward(logits, labels)

            # backward_pass
            delta = self.criterion.backward()
            self.model.backward(delta)

            # updata the model weights
            self.optimizer.step()

            # restore loss and accuracy
            iteration_train_loss.append(loss)
            iteration_train_acc.append(acc)

            # display iteration training info
            if iteration % self.cfg['display_freq'] == 0:
                print("Epoch [{}][{}]\t Batch [{}][{}]\t Training Loss {:.4f}\t Accuracy {:.4f}".format(
                    epoch, max_epoch, iteration, len(self.train_loader), loss, acc))

        avg_train_loss, avg_train_acc = np.mean(iteration_train_loss), np.mean(iteration_train_acc)
        epoch_train_loss.append(avg_train_loss)
        epoch_train_acc.append(avg_train_acc)

        # validate
        avg_val_loss, avg_val_acc = self.validate()

        # display epoch training info
        print('\nEpoch [{}]\t Average training loss {:.4f}\t Average training accuracy {:.4f}'.format(
            epoch, avg_train_loss, avg_train_acc))

        # display epoch valiation info
        print('Epoch [{}]\t Average validation loss {:.4f}\t Average validation accuracy {:.4f}\n'.format(
            epoch, avg_val_loss, avg_val_acc))

    return epoch_train_loss, epoch_train_acc

def validate(self):
    logits_set, labels_set = [], []
    for images, labels in self.val_loader:
        logits = self.model.forward(images)
        logits_set.append(logi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值