![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PyTorch
Star_.
这个作者很懒,什么都没留下…
展开
-
划分训练集,验证集,测试集
将目标文件数据划分训练集、验证集和测试集三个文件夹原创 2022-07-31 23:13:05 · 249 阅读 · 0 评论 -
yolo格式(txt)数据集转VOC(xml)
yolo格式(txt)数据集转VOC(xml)原创 2022-07-27 18:03:36 · 831 阅读 · 2 评论 -
如何租用AutoDL的GPU
我们学生的笔记本电脑可能没有太好的显卡(家里有矿的除外),所以在我们进行深度学习训练的时候,尤其是数据集较多,训练次数较多的时候,我们自己的电脑就比较慢,也不是说不能训练,就是你可能用20s训练一次,云GPU可能就用1s,为了提高效率,所哟我们往往需要租用一个云GPU。原创 2022-04-04 15:49:02 · 5097 阅读 · 9 评论 -
利用云端GPU训练YOLOv5模型
自己电脑太low了,内存太少了。所以利用下colab的云端GPU来进行训练,原创 2022-03-07 09:19:48 · 3440 阅读 · 0 评论 -
完整的模型测试套路
测试出我们训练的模型是否准确这里,我们使用CIFAR10这个数据集来训练与测试首先,先debug下,查看这个数据集中有哪些target我们以一个小狗的图片为例,测试我们的模型是否能识别正确这里用到一个函数Rezie(),因为我们的模型需要32x32的图片,然后我们的图片print一下一看,是size=631x440 的。将我们的图片由PIL类型转化成totensor类型后进行测试import torchimport torchvisionfrom PIL import Imagefrom原创 2022-02-08 16:39:50 · 3011 阅读 · 0 评论 -
利用GPU训练
有两种方法可以用GPU训练方法一:在网络模型损失器数据(输入,标注)上加上 if torch.cuda.is_available(): name = name.cuda()方法二:先加上这行代码device = torch.device("cuda")如果想用cpu,就直接把cuda改成cpu即可然后还是在网络模型损失器数据(输入,标注)上加上name = name.to(device)示例:因为原创 2022-02-07 21:32:28 · 1211 阅读 · 0 评论 -
完整的训练模型套路
计算数据集的长度:import torchvision.datasets# from model import *train_data = torchvision.datasets.CIFAR10("data",train=True,transform=torchvision.transforms.ToTensor(), download=True)test_data = torchvision.datasets原创 2022-02-06 17:51:29 · 1466 阅读 · 0 评论 -
网络模型的保存与读取
网络模型的保存于与读取方法1:1.1 如何保存网络模型首先,创建一个py文件,model_save.pyimport torchimport torchvisionvgg16 = torchvision.models.vgg16(pretrained=False)torch.save(vgg16,"vgg16_model1_pth")运行结束后我们会在我们左侧的文件出现vgg16_model1_pth这个文件用这种方法保存,不仅保存了网络模型,也保存了网络模型中的相关参数1.2 如原创 2022-02-05 17:39:06 · 1426 阅读 · 0 评论 -
现有网络模型的使用与修改
以vgg16模型为例:如何在原有的模型中后面添加自己需要的操作首先:先输出原有的vgg16看一看import torchvisionVGG_False = torchvision.models.vgg16(pretrained=False)print(VGG_False)输出:VGG( (features): Sequential( (0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))原创 2022-02-05 17:03:34 · 1453 阅读 · 0 评论 -
深度学习-优化器
优化器理解:通过梯度下降来更新神经网络中参数的值,使实际值慢慢的向要求值靠近。但是优化器有很多种,因为只是入门,所以我先不仔细了解各种优化器中要求的算法可以观察官方文档中的示例:for input, target in dataset: optimizer.zero_grad() output = model(input) loss = loss_fn(output, target) loss.backward() optimizer.step()理解与解释原创 2022-02-05 14:16:52 · 146 阅读 · 0 评论 -
反向传播理解
在学损失函数的时候遇到反向传播不太懂,搜了一下,有一个文章用一个例子,一步一步用公式推出来如何利用反向传播更新权值的。很是理解文章在这,反向传播——通俗易懂转载 2022-02-05 11:42:07 · 59 阅读 · 0 评论 -
损失函数与反向传播
损失函数定义与作用损失函数(loss function)在深度学习领域是用来计算搭建模型预测的输出值和真实值之间的误差。1.损失函数越小越好2.计算实际输出与目标之间的差距3.为更新输出提供依据(反向传播)常见的损失函数回归常见的损失函数有:均方差(Mean Squared Error,MSE)、平均绝对误差(Mean Absolute Error Loss,MAE)、Huber Loss是一种将MSE与MAE结合起来,取两者优点的损失函数,也被称作Smooth Mean Absolute Er原创 2022-02-05 11:07:42 · 4645 阅读 · 0 评论 -
神经网络-简单的搭建实战
搭建上图神经网络并测试import torchimport torchvisionfrom torch import nnfrom torch.nn import Conv2d, MaxPool2d, Flatten, Linearfrom torch.utils.data import DataLoaderdataset = torchvision.datasets.CIFAR10("dataset2",train=False,transform=torchvision.transform.原创 2022-02-03 18:11:15 · 407 阅读 · 0 评论 -
神经网络-非线性激活,线性层
为什么要使用非线性激活:如上图的神经网络,在正向传播过程中,若使用线性激活函数(恒等激励函数)即令则隐藏层的输出为可以看到使用线性激活函数神经网络只是把输入线性组合再输出,所以当有很多隐藏层时,在隐藏层使用线性激活函数的训练效果和不使用影藏层即 标准的Logistic回归是一样的。故我们要在隐藏层使用非线性激活函数而非线性的。通常只有一个地方可以使用线性激活函数,就是你在做机器学习中的回归问题。 y是一个实数,举个例子,比如你想预测房地产价格, y就不是二分类任务0或1,而是一个实数,从原创 2022-02-03 10:00:01 · 3292 阅读 · 0 评论 -
神经网络-池化层
池化层:一种形式的降采样理解:在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。作用:特征不变性特征降维(下采样)在一定程度上防止过拟合实现非线性(类似relu)扩大感受野常见的池化层:最大池化、平均池化、全局平均池化、全局最大池化重叠池化空金字塔池化以最大池化为例:参数:kernel_size :表示做最大池化的窗口大小,可以是单个值,也可以是tup原创 2022-02-02 22:03:12 · 3355 阅读 · 0 评论 -
神经网络-卷积层
目前我对卷积层只能由一个大概的了解类似于下图的这种情况原创 2022-01-30 22:59:50 · 794 阅读 · 0 评论 -
神经网络-nn.Module
torcn.nn是专门为神经网络设计的模块化接口. nn构建于autograd之上,可以用来定义和运行神经网络。nn.Module是所有网络层基类,用来管理网络属性。所有的网络模型比如说LeNet模型,包括模型的所有子模块,卷积层、池化层也是一个nn.Module类input—>神经网络(forward)–>output下面写个示例来复习下forward()import torchfrom torch import nnclass Lwx(nn.Module): def _原创 2022-01-30 18:53:18 · 617 阅读 · 0 评论 -
PyTorch-DataLoader
DataLoader功能 : 创建可以迭代的数据装载器参数:dataset : Dataset类对象, 决定数据从哪读取以及如何读取batchsize: 决定数据批次大小 num_works: 多进程读取数据的线程数shuffle: 每个 epoch 是否乱序当样本数不能被batchsize整除时, 是否舍去最后一个batch的数据示例:每四张图片打包一次import torchvision.datasetsfrom torch.utils.data import DataLoader原创 2022-01-29 20:58:00 · 680 阅读 · 0 评论 -
torchvision中的数据集使用
在pytorch官网我们在torchvision中可以看到datasets含有很多数据集,用来生成图片,视频数据集,和一些流行的模型类和预训练模型.参数:root (string) – 存在 mnist/processed/training.pt 和 mnist/processed/test.pt 的数据集根目录。train (bool, optional) – 如果为True,从 training.pt 创建数据,否则从 test.pt 创建数据。download (bool, optiona原创 2022-01-29 19:45:53 · 3211 阅读 · 0 评论 -
torchvision-transforms
在pytorch中,图像的预处理过程中常常需要对图片的格式、尺寸等做一系列的变化,这就需要借助transforms。transforms中很多类,可以对图片进行不同的操作transforms的使用:重要的是转化图片的输入格式要进行变换利用ToTensor这个类将PIL格式转换成tensor类型的from PIL import Imagefrom torchvision import transformsimg_path='mmexport1632131149054.jpg'img=Imag原创 2022-01-29 17:56:57 · 810 阅读 · 0 评论 -
PyTorch-tensorboard
tensorboard是个可视化工具,用于观察神经网络训练过程SummaryWriter:首先需要创建一个SummaryWriter示例其中有些参数不常用,我们可以只在参数里写上一个训练保存的路径即可例:writer=SummaryWriter('logs')我们在SummaryWriter中常用的方法有:1. add_scalar2. add_imageadd_scalaradd_scalar(tag, scalar_value, global_step=None, walltime=原创 2022-01-27 12:02:58 · 574 阅读 · 0 评论 -
PyTorch-Datasert类
认识Dataset类利用Jupter可以看到官方给出的定义:DataSet就是用来封装数据的类,主要用来对数据进行相关的自定义操作(比如图片的裁剪、标签的定义等),通过__getitem__函数返回所需要的数据。这里有一个getitem函数,getitem函数接收一个index,然后返回图片数据和标签,这个index通常是指一个list的index,这个list的每个元素就包含了图片数据的路径和标签信息。下面进入实战,对蚂蚁和蜜蜂的图片进行图片的读取导入相对应的包:import osfrom原创 2022-01-24 11:32:23 · 1217 阅读 · 1 评论