当前位置: 首页 > news >正文

手机网站空间代发关键词包收录

手机网站空间,代发关键词包收录,福建注册公司网上申请入口,长垣高端建站【前言】 本专题为PyTorch专栏。从本专题开始,我将通过使用PyTorch编写基础神经网络,带领大家学习PyTorch。并顺便带领大家复习以下深度学习的知识。希望大家通过本专栏学习,更进一步了解人更智能这个领域。 材料来源:06.…

【前言】
        本专题为PyTorch专栏。从本专题开始,我将通过使用PyTorch编写基础神经网络,带领大家学习PyTorch。并顺便带领大家复习以下深度学习的知识。希望大家通过本专栏学习,更进一步了解人更智能这个领域。

        材料来源:06.逻辑斯蒂回归_哔哩哔哩_bilibili


 PyTorch编写思路

对于大部分的神经网络模型,我们应该要有以下编写思路:

1.构建数据集  

2.设计模型  

3.构造损失函数和优化器  

4.周期训练模型

5.测试模型


【前言】本节课我们实现的是二分类,因此标签是0或1.

PyTorch数据集获取:

1. MNIST 数据集

MNIST 数据集是一个非常著名且广泛使用的手写数字识别数据集,常被用于机器学习和深度学习领域的入门实验和基准测试。  

1. 数据集内容

MNIST 数据集包含灰度化的手写数字图像及其对应的标签。具体来说:  

**图像**:每个图像的大小为 28×28 像素,包含灰度值(像素值范围为 0 到 255),其中 0 表示白色背景,255 表示黑色前景。  

**标签**:每个图像对应一个标签,标签是一个介于 0 到 9 的整数,表示图像中手写的数字。  

2. 数据集划分  

MNIST 数据集通常分为两部分:  

**训练集**:包含 60,000 张图像及其标签,用于训练模型。  

**测试集**:包含 10,000 张图像及其标签,用于评估模型的性能。

​
import torchvision
train_set=torchvision.datasets.MNIST(root='D:\学习\数据集\PyTorch逻辑回归数据集',train=True,download=True)
test_set=torchvision.datasets.MNIST(root='D:\学习\数据集\PyTorch逻辑回归数据集',train=False,download=True)​

参数root:数据集保存地址

参数train:True=将数据集作为训练集,False=将数据集作为测试集

参数download:True=下载,False=不下载

2. CIFAR 数据集

CIFAR 数据集分为两个主要版本:CIFAR-10 和 CIFAR-100。  

CIFAR-10  

图像数量:包含 60,000 张 32×32 的彩色图像。  

类别数量:分为 10 个类别,每个类别包含 6,000 张图像。  

类别内容:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车。  

数据划分:50,000 张训练图像和 10,000 张测试图像。  

CIFAR-100  

图像数量:包含 60,000 张 32×32 的彩色图像。  

类别数量:分为 100 个类别,每个类别包含 600 张图像。  

类别内容:类别更加丰富,例如动物、交通工具、自然场景等。  

数据划分:50,000 张训练图像和 10,000 张测试图像。  

2. 数据集特点  

图像尺寸小:每张图像的尺寸为 32×32 像素,适合快速实验。  

类别丰富:CIFAR-10 有 10 个类别,CIFAR-100 有 100 个类别。  

类别均衡:每个类别的样本数量相同,有助于模型学习。  

真实场景:图像来自真实世界,具有一定的复杂性和多样性。  

import torchvision
train_set=torchvision.datasets.CIFAR10(root='D:\学习\数据集\PyTorch逻辑回归数据集',train=True,download=True)
test_set=torchvision.datasets.CIFAR10(root='D:\学习\数据集\PyTorch逻辑回归数据集',train=False,download=True)

参数root:数据集保存地址

参数train:True=将数据集作为训练集,False=将数据集作为测试集

参数download:True=下载,False=不下载

一、构建数据集

import torch
#torch.Tensor()用来创建张量,即创建矩阵
x_data=torch.Tensor([[1.0],[2.0],[3.0]])
y_data=torch.Tensor([[0],[0],[1]])

【注意】y_data与上节课不同,因为这节课讲的是二分类问题,因此标签是0或1。


二、设计模型

1.构造计算图

当你有了一个计算图之后,你将会加深对神经网络计算过程的理解,更加便于你构造神经网络模型

2.代码实现

import torch.nn.functional as F
#torch.nn.functional 是 PyTorch 中的一个模块,提供了许多用于构建神经网络的函数式接口。
#这些函数通常用于定义网络的前向传播过程,包括激活函数、损失函数、卷积操作、池化操作等。
#使用 torch.nn.functional 可以使代码更加灵活和简洁。
class LogisticRegressionModel(torch.nn.Module):"""定义了一个类,继承自PyTorch的torch.nn.Module模块.是 PyTorch 中所有神经网络模块的基类,所有自定义的模型都应该继承自这个类。"""  def __init__(self):#是 PyTorch 中所有神经网络模块的基类,所有自定义的模型都应该继承自这个类。super(LogisticRegressionModel,self).__init__()"""调用了父类 torch.nn.Module 的初始化方法。这是必要的,因为 torch.nn.Module 的初始化方法会进行一些内部的初始化操作,确保模型能够正常工作。"""self.linear=torch.nn.Linear(1,1)#创建了一个线性层#第一个参数为输入特征的数量。即输入张量的最后一个维度的大小。#第二个参数为输出特征的数量。即输出张量的最后一个维度的大小。#定义了一个前向传播def forward(self,x):y_pred=F.sigmoid(self.linear(x))return y_pred #类实例化    
model=LogisticRegressionModel()

代码中的注释很详细,大家仔细看一下。


三、构造损失函数和优化器

这章节我们将使用新的损失函数——交叉熵损失函数

#方差损失函数
criterion=torch.nn.BCELoss(size_average=False)
#优化器optim.SGD
optimizer=torch.optim.SGD(model.parameters(),lr=0.01)

交叉熵损失函数

我们之前在深度学习中一开始学习的就是交叉熵损失函数,因此在这里再给大家复习一下

四、周期训练模型

我们定周期为1000,并打印周期内的方差损失函数的损失值

for epoch in range(1000):y_pred=model(x_data)loss=criterion(y_pred,y_data)print(epoch,loss.item())optimizer.zero_grad()loss.backward()optimizer.step()

其中的函数我们上节课中讲过,如果有遗忘的话大家可以再看看上节课的文章,这里就不再过多赘述了

运行结果:

0 1.754103660583496
1 1.7506103515625
2 1.7472782135009766
3 1.744094967842102
4 1.7410497665405273
5 1.7381312847137451
6 1.735330581665039
7 1.7326380014419556
8 1.7300457954406738
9 1.727545976638794
10 1.7251315116882324
11 1.7227959632873535
12 1.7205333709716797
13 1.7183377742767334
14 1.7162041664123535
15 1.7141282558441162
16 1.7121050357818604
17 1.710131049156189
18 1.7082021236419678
19 1.7063149213790894
20 1.704466700553894
21 1.7026541233062744
22 1.7008745670318604
23 1.6991257667541504
24 1.6974055767059326
...
996 0.963502049446106
997 0.9631128907203674
998 0.9627243280410767
999 0.9623361825942993
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...

我们可以直观的看到,随着训练次数越来越多,损失值在不断的减少,这也就意味着模型的效果越来越好。这也就是梯度下降过程。 

五、测试模型

import numpy as np
import matplotlib.pyplot as pltx=np.linspace(0,10,200)
x_test=torch.Tensor(x).view((200,1))
y_test=model(x_test)
y=y_test.data.numpy()
plt.plot(x,y)
plt.plot([0,10],[0.5,0.5],c='r')
plt.xlabel('Hours')
plt.ylabel('Probability of Pass')
plt.grid()
plt.show()

测试结果:

 我们可以看到,这张图片其实就是Sigmoid函数的一部分。

import numpy as np
import matplotlib.pyplot as plt

  • 导入了 NumPy 和 Matplotlib 的 pyplot 模块,分别用于数值计算和绘图。

x = np.linspace(0, 10, 200)
  • 使用 np.linspace 创建了一个包含 200 个点的数组 x,这些点均匀分布在 0 到 10 之间。

  • 这些点将作为输入数据,用于测试模型的预测。

x_test = torch.Tensor(x).view((200, 1))
  • 将 NumPy 数组 x 转换为 PyTorch 张量 x_test

  • 使用 .view((200, 1)) 将张量的形状调整为 (200, 1),表示有 200 个样本,每个样本有 1 个特征。

  • 这是因为 PyTorch 的模型通常期望输入是一个二维张量。

y_test = model(x_test)
  • 将输入张量 x_test 传递给模型 model,计算模型的预测值 y_test

  • 假设 model 是一个已经训练好的模型,它会输出每个输入点对应的预测值。

y = y_test.data.numpy()
  • 将 PyTorch 张量 y_test 转换为 NumPy 数组 y,以便用于绘图。

  • .data 是 PyTorch 中用于访问张量数据的属性,但请注意,在较新的 PyTorch 版本中,建议直接使用张量本身(例如 y_test.numpy())。

plt.plot(x, y)
  • 使用 Matplotlib 的 plot 函数绘制输入 x 和预测值 y 的关系图。

  • 这条曲线展示了模型预测的概率随输入的变化情况。

plt.plot([0, 10], [0.5, 0.5], c='r')
  • 在图上绘制一条红色的水平线,表示概率为 0.5 的阈值。

  • 这条线可以帮助观察模型预测的概率在不同输入下的位置。

plt.xlabel('Hours')
plt.ylabel('Probability of Pass')
  • 设置 x 轴和 y 轴的标签,分别为 "Hours" 和 "Probability of Pass"。

  • 这表明输入 x 可能表示某种时间(例如学习时间),而输出 y 表示通过的概率。

plt.grid()
  • 添加网格线,使图形更易于阅读。

plt.show()
  • 显示图形。

http://www.dtcms.com/a/467583.html

相关文章:

  • 垫江网站建设无锡公共建设中心网站
  • 广安发展建设集团公司网站培训机构网站开发
  • 建筑建材网站设计费用广州网站建设易企
  • 寻找新一代跨境数据传输解决方案
  • AMD显卡驱动怎么安装 详细教程分享
  • 网站的制作成品电子商务公司的经营范围有哪些
  • 网站微信建设方案三字顺口公司名字
  • 如何免费注册网站平台专业建站公司费用
  • 品牌网站都有哪些建设通查询
  • 网站关键词排名100做展示类网站
  • 深入应用层协议定制:从确定通信内容到选择数据组织方式的完整攻略
  • 苍山做网站网站上做旅游卖家要学什么
  • 怎样制作一个个人网站建设一个网站的硬件要求吗
  • 面向MCP协议API的智能测试框架:多源数据融合与协议自适应研究
  • 医疗设备控制系统中同步与异步通信的架构设计
  • 怎么上传网站iis世界500强企业名单排名
  • 怎么做游戏网站编辑建设一个网站多少钱呢
  • 建设网站dns如何设置做网站需要那些东西
  • 服务器配置isaacsim报错没有图形化窗口/串流方案
  • 中英文网站开发费用Python电影网站开发
  • ui设计公司官网昆明seo网站排名优化
  • tp3.2.3网站开发实例本地服务类网站成本
  • 网站开发中的文档公司网站建设价格
  • 秦皇岛做网站优化价格建个什么网站
  • 如何给网站做优化短视频万能素材库
  • 泰兴网站优化个人网站的域名
  • 职业学校查询网站电商网站建设目的
  • 汕头市营商环境建设监督局网站wordpress轻博客主题
  • 网站开发费用是无形资产wordpress论坛源码
  • 联合建设官方网站浙江省建设监理协会网站