自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 23.现有网络模型的使用及修改

本节主要讲解与图像相关的 torchvision本节主要讲解 Classification 里的 VGG 模型,数据集仍为 CIFAR10 数据集(主要用于分类)

2024-08-29 00:24:25 1124

原创 22.优化器

当使用损失函数时,可以调用损失函数的 backward,得到反向传播,反向传播可以求出每个需要调节的参数对应的梯度,有了梯度就可以利用优化器,优化器根据梯度对参数进行调整,以达到整体误差降低的目的。

2024-08-29 00:19:02 582

原创 21.损失函数与反向传播

torch.nn 里的 loss function 衡量误差,在使用过程中根据需求使用,注意输入形状和输出形状即可loss 衡量实际神经网络输出 output 与真实想要结果 target 的差距,越小越好计算实际输出和目标之间的差距为我们更新输出提供一定的依据(反向传播):给每一个卷积核中的参数提供了梯度 grad,采用反向传播时,每一个要更新的参数都会计算出对应的梯度,优化过程中根据梯度对参数进行优化,最终达到整个 loss 进行降低的目的。

2024-08-29 00:18:17 1804

原创 20.神经网络 - 搭建小实战和 Sequential 的使用

在 PyTorch 中,Sequential 是一个容器(container)类,用于构建神经网络模型。它允许你按顺序(sequential)添加不同的网络层,并将它们串联在一起,形成一个网络模型。这样做可以方便地定义简单的前向传播过程,适用于许多基本的网络结构。Sequential 的优点之一是其简洁性和易读性,特别适用于简单的网络结构。然而,对于更复杂的模型,可能需要使用 PyTorch 的其他模型构建方式,如使用 nn.Module 基类自定义网络结构,以满足更灵活的需求。

2024-08-29 00:17:18 1516

原创 19.神经网络 - 线性层及其他层介绍

对输入采用Batch Normalization,可以加快神经网络的训练速度。

2024-08-29 00:16:46 1371

原创 18.神经网络 - 非线性激活

输入:(N,*) N 为 batch_size,*不限制可以是任意。输入:(N,*) N 为 batch_size,*不限制。

2024-08-29 00:15:20 608

原创 17.神经网络 - 最大池化的使用

最大池化的目的是保留输入的特征,同时把数据量减小(数据维度变小),对于整个网络来说,进行计算的参数变少,会训练地更快,(池化最大的作用是增大感受野,让后面的卷积看到更全局的内容。池化一般跟在卷积后,卷积层是用来提取特征的,一般有相应特征的位置是比较大的数字,最大池化可以提取出这一部分有相应特征的信息。( 注意,卷积中stride默认为1,而池化中stride默认为kernel_size )Ceil_mode = False 为例运行输出:(运行结果如下:)(以 Ceil_mode = True 为例)

2024-08-29 00:13:39 710

原创 16.神经网络 - 卷积层

pytorch官网网站卷积层(Convolution Layers):Convolution Layers。

2024-08-29 00:13:06 1490

原创 15.土堆说卷积操作(stride、padding)

当 stride = 2 时,横向和纵向都是2,输出是一个2×2的矩阵。

2024-08-29 00:12:17 832

原创 14.神经网络的基本骨架 - nn.Module 的使用

Pytorch官网左侧:Python API(相当于package,提供了一些不同的工具)

2024-08-29 00:11:43 750

原创 13.DataLoader 的使用

dataset:只有dataset没有默认值,只需要将之前自定义的dataset实例化,再放到dataloader中即可batch_size:每次抓牌抓几张shuffle:打乱与否,值为True的话两次打牌时牌的顺序是不一样。默认为False,但一般用Truenum_workers:加载数据时采用单个进程还是多个进程,多进程的话速度相对较快,默认为0(主进程加载)。Windows系统下该值>0会有问题(报错提示:BrokenPipeError)

2024-08-29 00:11:12 1665

原创 12.torchvision中的数据集使用

CIFAR10 数据集包含了6万张32×32像素的彩色图片,图片有10个类别,每个类别有6千张图像,其中有5万张图像为训练图片,1万张为测试图片。

2024-08-29 00:10:13 938

原创 11.常见的Transforms(二)

Compose() 中的参数需要是一个列表,Python中列表的表示形式为[数据1,数据2,…]在Compose中,数据需要是transforms类型,所以得到Compose([transforms参数1,transforms参数2,…])参数1的输出类型必须与参数2的输入类型匹配。因为compose的工作顺序是从左到右的,第一个参数transform介绍之后再进行第二个transform的操作,所以需要前一个的输出和后一个的输入匹配。参数需要输入想要裁剪成的图片大小。

2024-06-27 05:18:50 2665

原创 10.常见的Transforms(一)

我们以图像举例子,不同的图片之间数据分布差异是很大的,有些图片的像素值普遍偏大,而有些图片的像素值偏小。③编写代码,使用Python自带的图片打开方式,然后运行UsefulTransforms,控制台可以看到该图片是PIL格式,大小是889x500,接下来介绍Transforms。使用归一化的目的是将输入数据进行标准化,使输入的数据具有相似的分布。所以在将不同的图片送给神经网络进行推理之前,我们也需要对不同的图片中数据分布进行归一化,以纠正不同图片样本之间的数据偏差,从而使得模型更好地完成推理。

2024-06-11 02:32:44 1402

原创 9.Transforms的使用(一)(二)

可以理解为,transforms.py是一个工具箱,里面有很多工具,像ToTensor/Resize等,可以将这些工具看成模板,利用这些模板来创建我们需要的工具,根据这些工具的使用方法,输入数据,输出结果。Tensor 数据类型包装了反向神经网络所需要的一些理论基础的参数**,如:_backward_hooks、_grad等**(先转换成Tensor数据类型,再训练)从transforms中选择一个class,首先对它创建,根据创建的工具知道需要什么东西,返回出结果。(1)transforms该如何使用;

2024-06-11 02:26:36 1105

原创 8.TensorBoard的使用(二)

这两个的title都是test,在一个title下,通过滑块显示每一步的图形,可以直观地观察训练中给model提供了哪些数据,或者想对model进行测试时,可以看到每个阶段的输出结果。这里需要额外注意一点,图片的shape,从PIL到numpy型,需要在add_image()中指定每一个数字/维表示的含义。先复制一下第一张图片的相对路径,因为该图片文件夹就在项目文件夹所在的位置,故只需复制相对地址。可以看到该图片是PIL.格式,不符合add_image()要求。运行该python文件,然后刷新一下事件。

2024-06-11 02:21:54 462

原创 7.TensorBoard的使用(一)

TensorBoard是Google开发的一个机器学习可视化工具。

2024-06-11 02:17:07 1349

原创 6.Dataset类代码实战

ants_label里面存储txt文件,每个txt文件命名对应一张ants_image里的图片,txt里面存储真正的label,bees_label同理。ants_label里面存储txt文件,每个txt文件命名对应一张ants_image里的图片,txt里面存储真正的label,bees_label同理。当label比较复杂,存储数据比较多时,不可能以文件夹命名的方式,而是以每张图片对应一个txt文件,txt里存储label信息的方式.(注意,路径引号前加 r 可以防止转义,或使用双斜杠)

2024-06-11 02:09:37 475

原创 5.pytorch加载数据初认识

对于神经网络训练,要从数据海洋里找到有用的数据。

2024-06-11 02:06:46 506 1

原创 4.pycharm及jupyter使用对比

PyCharm:代码是以块为一个整体运行的话,Python文件的块是所有行的代码,即在PyCharm运行时出现错误时,修改后要从头开始运行PyCharm的Python控制台:PyCharm的Python控制台是一行一行代码运行的,即以每一行为一个块来运行的(也可以以任意行为块运行,按Shift+回车,输入下一行代码,再按回车运行)优点:Python控制台可以看到每个变量的属性缺点:出现错误后代码的可阅读性大大降低使用时间:一般调试时使用。

2024-06-11 02:04:22 2118

原创 3.python学习中的两大法宝函数

在Python中,包(Package)是一种Python模块的集合,从文件组织形式上看,包就是一个文件夹,里面放着各种模块(.py文件),也可以有子文件夹(子包)。包名构建了一个Python模块的命名空间。比如,模块名A.B表示A包中名为B的子模块。这种使用加点的模块名可以让你写的软件包里面的模块名称和其它软件包里面的模块名称一样,但又不相互冲突。一个Package就像一个工具箱,但是我们并不知道里面有什么工具,例如这个工具箱的名字叫做pytorch。

2024-06-11 01:44:07 470

原创 2.python编辑器安装(pycharm、jupyter)

该文章是我根据b站up我是土堆,学习pytorch的内容时所编写

2024-06-11 01:41:57 2008

原创 1.PyTorch的环境配置及安装

anaconda和pytorch安装与配置

2024-04-29 04:26:46 646 1

原创 结构体定义(C语言,用户自定义数据类型)

结构类型是聚合数据对象的抽象,通常由程序员根据所要建立的聚合数据对象的聚合形态自行定义。

2023-07-02 14:32:27 877 1

原创 图的遍历算法手算(广度优先遍历和深度优先遍历)

图的遍历是指从图中的某一顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点访问且仅访问一次。图的遍历根据搜索方式的不同,分为广度优先搜索(BFS)和深度优先搜索(DFS)。

2023-06-25 16:25:16 815

原创 jdk1.8下载与安装教程(2023最新版)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。jdk1.8又称jdk8.0,是目前相对比较稳定的版本,不建议下载最新的jdk版本,因为最新版的jdk不稳定,在Java的学习中可能会出现各种各样的问题。

2023-06-23 18:11:04 68384 10

原创 链表算法--设计链表

本题设计链表的五个接口,已经覆盖了链表的常见操作,是练习链表操作非常好的一道题目。

2023-06-08 20:36:24 153

原创 链表算法--移除链表元素

由于删除的节点可能是头节点,而移除头结点和移除其他节点的操作是不一样的,因为链表的其他节点都是通过前一个节点来移除当前节点,而头结点没有前一个节点,可以添加一个虚拟头结点,删除头结点就不用另做考虑。示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]示例 2: 输入:head = [], val = 1 输出:[]题意:删除链表中等于给定值 val 的所有节点。

2023-06-01 22:19:20 116 1

原创 数组部分的算法--螺旋矩阵

给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

2023-05-29 13:20:26 167 1

原创 数组部分的算法--长度最小的子数组

法一:最容易想到的是暴力求解,使用两个 for 循环,一个 for 循环固定一个数字比如 i,另一个 for 循环从 i 的下一个元素开始累加,当和大于等于 s 的时候终止内层循环,顺便记录下最小长度。给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。窗口的结束位置:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。窗口就是 满足其和 ≥ s 的长度最小的。法二:滑动窗口,根据当前子序列和大小的情况,不断的调节子序列的。

2023-05-28 00:17:30 107 1

原创 SpringCloud微服务学习--Nacos注册中心

本文仍然是记录springcloud微服务学习,内容是关于微服务中的Nacos注册中心。上一篇文章是。

2023-05-20 21:22:03 196 1

原创 数组部分的算法

leetcode算法练习

2023-05-19 14:39:39 79 1

原创 SpringCloud微服务学习--Ribbon负载均衡

SpringCloud Ribbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下:拦截我们的RestTemplate请求RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-serviceDynamicServerListLoadBalancer根据user-service到eureka拉取服务列表eureka返回列表,localhost:8081、localhost:8082。

2023-05-11 23:05:55 144 1

原创 SpringCloud微服务学习--Eureka注册中心

在Eureka架构中,微服务角色有两类。

2023-05-09 13:00:17 331 1

原创 SpringCloud微服务学习--服务拆分和远程调用

本文仍然是记录springcloud微服务学习,内容是关于微服务中的服务拆分和及实现案例。

2023-05-09 00:25:57 452 1

原创 SpringCloud微服务学习

单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件。

2023-05-06 14:51:33 662 2

Java八股文208题面试用

Java八股文208题,总共分为十九个模块,分别是:「Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM」

2023-06-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除