Pytorch学习笔记-softmax实现

本文介绍了如何在PyTorch中使用softmax实现分类,包括数据读取、模型参数初始化、softmax运算、模型定义、损失函数、准确率计算及模型训练与预测。
摘要由CSDN通过智能技术生成

首先导入实现所需的包或模块。

import torch
import torchvision
import numpy as np
import sys
sys.path.append("..") 
import d2lzh_pytorch as d2l

获取和读取数据

使用Fashion-MNIST数据集,并设置批量大小为256。

batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)

初始化模型参数

跟线性回归中的例子一样,使用向量表示每个样本。已知每个样本输入是高和宽均为 28 28 28像素的图像。模型的输入向量的长度是 28 × 28 = 784 28\times28=784 28×28=784 :该向量的每个元素对应图像中每个像素。由于图像有10个类别,单层神经网络输出层的输出个数为 10 10 10,因此softmax回归的权重和偏差参数分别为 784 × 10 784\times10 784×10 1 × 10 1\times10 1×10的矩阵。

num_inputs = 784
num_outputs = 10

W = torch.tensor(np.random.normal(0, 0.01, (num_inputs, num_outputs)), dtype=torch.float)
b = torch.zeros(num_outputs, dtype=torch.float)

模型参数梯度

W.requires_grad_(requires_grad=True)
b.requires_grad_(requires_grad=True) 

实现softmax运算

在介绍如何定义softmax回归之前,先描述一下对如何对多维Tensor按维度操作。在例子中,给定一个Tensor矩阵X。可以只对其中同一列(dim=0)或同一行(dim=1)的元素求和,并在结果中保留行和列这两个维度(

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值