深度学习
向前 向前 向前!
这个作者很懒,什么都没留下…
展开
-
torch.argsort()函数组合的奇效
因为ids_shuffle的值记录的是随机创建的X_采样子序列中每个位置的元素对应原X序列的位置,ids_restore获取的过程可以分为两步理解:(1),对ids_shuffle的值从小到大排序,即原始序列X从0-N的排序,就是X的原始序列位置。例如这里我的X[0]在ids_shuffle中的位置为1, X[1]在ids_shuffle中的位置为0, X[2]的位置为2 ,X[3]的位置为4,X[4]的位置为3.ids_restore:[1,0,2,4,3]比如我抽取 X[3] X[0] X[4]原创 2023-07-04 10:48:40 · 355 阅读 · 0 评论 -
记录自己在torch中遇到的一些bug
记录自己在torch中遇到的一些bug这么写会导致默认的cuda:0中一直被占用内存FloatTensor = torch.cuda.FloatTensor if x.is_cuda else torch.FloatTensorLongTensor = torch.cuda.LongTensor if x.is_cuda else torch.LongTensoranchor_w = FloatTensor(scaled_anchors_l).index_select(1, LongTen原创 2022-03-28 18:04:58 · 1856 阅读 · 0 评论 -
在深度学习中常用的torch,np语法
常用torch,np语法一、torch二、np1.np.concatenate: 作用是将()中多个np.array进行连接#这一段代码是计算ap的mrec = np.concatenate(([0.0], rec, [1.0]))mpre = np.concatenate(([0.0], prec, [0.0]))#例:a = np.array([0.1,0.3,0.5])x = np.concatenate(([[0],a,[0]]))print(x)>>>[0.原创 2022-03-28 18:02:58 · 1732 阅读 · 0 评论 -
yolov3学习笔记
一、dataloder部分数据的输入是图片加上图片对应的targets,这个targets是一张图片中所拥有的全部真实框的中心位置x,y和宽高w,h和类别,共5个参数。如一张图片有3个框,那么这张图片的输入就是img ,target :(3, 5(x,y,w,h,class)) 这里x,y w ,h都是归一化之后的。注意:这里有一个问题,如果一个batch_size中有多张图片,每个图片的框的数目不一致,那么这个targets的size是什么样的呢?代码中的处理是将target放入一个列表中,通过原创 2022-03-23 15:59:02 · 509 阅读 · 0 评论 -
torch中,tensor数值类型变成bool值
直接使用下面的语句会报错:‘Tensor’ object has no attribute ‘bool’a = torch.ones(2,2)a.bool()应该改成:a = torch.ones(2,2)a.byte()原创 2022-03-22 10:59:44 · 6941 阅读 · 2 评论 -
python opencv中resize如何写尺寸?
python opencv中resize如何写尺寸?注意:1.我们使用opencv重新给图片设置尺寸时的书写方法:先写长,后写高2.这和我们打印图片尺寸不一样, print(img.shape)这个展示出来的是先高h,后长w。import cv2 as cvimg= cv.resize(img,(w,h))...原创 2022-03-07 14:50:41 · 3478 阅读 · 0 评论 -
pytorch构建的网络是如何自动命名的?
pytorch 网络结构的命名问题1.一般情况下是根据我们创建的类的self.XXX命名的。如: # Modulesself.conv1 = nn.Conv2d(3, 64, kernel_size=7, stride=2, padding=3, bias=False) 此时我们的网络层就会有一个: conv1.weight的命名2.当我们使用了for循环来创建网络层时,torch的命名会按照in原创 2022-02-20 15:49:42 · 1738 阅读 · 0 评论 -
2021-11-02
2_finetune.py# coding: utf-8import torchfrom torch.utils.data import DataLoaderimport torchvision.transforms as transformsimport numpy as npimport osfrom torch.autograd import Variableimport torch.nn as nnimport torch.nn.functional as Fimport to原创 2021-11-02 18:54:17 · 94 阅读 · 0 评论 -
2021-11-02
Cifar10数据的归一化# coding: utf-8import numpy as npimport cv2import randomimport os""" 随机挑选CNum张图片,进行按通道计算均值mean和标准差std 先将像素从0~255归一化至 0-1 再计算"""train_txt_path = os.path.join("..", "..", "Data/train.txt")CNum = 2000 # 挑选多少图片进行计算img_h原创 2021-11-02 18:53:08 · 100 阅读 · 0 评论 -
2021-11-02
Cifar10数据处理4 datasets# coding: utf-8from PIL import Imagefrom torch.utils.data import Datasetclass MyDataset(Dataset): def __init__(self, txt_path, transform=None, target_transform=None): fh = open(txt_path, 'r') imgs = []原创 2021-11-02 18:51:55 · 88 阅读 · 0 评论 -
2021-11-02
Cifar10数据处理3# coding:utf-8import os''' 为数据集生成对应的txt文件'''train_txt_path = os.path.join("..", "..", "Data", "train.txt")train_dir = os.path.join("..", "..", "Data", "train")valid_txt_path = os.path.join("..", "..", "Data", "valid.txt")valid_dir原创 2021-11-02 18:50:55 · 215 阅读 · 0 评论 -
2021-11-02
将原始数据集进行划分成训练集、验证集和测试集# coding: utf-8""" 将原始数据集进行划分成训练集、验证集和测试集"""import osimport globimport randomimport shutildataset_dir = os.path.join("..", "..", "Data", "cifar-10-png", "raw_test")train_dir = os.path.join("..", "..", "Data", "train")v原创 2021-11-02 18:49:31 · 291 阅读 · 0 评论 -
将cifar10的数据 转换成 png格式的图片
将cifar10的数据 转换成 png格式的图片# coding:utf-8""" 将cifar10的data_batch_12345 转换成 png格式的图片 每个类别单独存放在一个文件夹,文件夹名称为0-9"""from imageio import imwriteimport numpy as npimport osimport pickledata_dir = os.path.join("..", "..", "Data", "cifar-10-batches-p原创 2021-11-02 18:48:25 · 506 阅读 · 0 评论 -
pytorch中torchvision.transforms的一些理解
pytorch中torchvision.transforms的一些理解1.这个库里面主要是包含了一些图像处理的函数,也就是说使用.transforms的地方同样可以用其他图像库进行处理,例如opencv。2.这个库一般只用于和torchvision.datasets一起使用的时候,其他的一般自己弄就行了。test_loader = torch.utils.data.DataLoader( datasets.MNIST('data', train=False, transform=tra原创 2021-11-02 17:52:04 · 163 阅读 · 0 评论 -
pytorch中 torch.nn的介绍
pytorch中 torch.nn的介绍一、torch.nn是什么?torch.nn是pytorch中自带的一个函数库,里面包含了神经网络中使用的一些常用函数,如具有可学习参数的nn.Conv2d(),nn.Linear()和不具有可学习的参数(如ReLU,pool,DropOut等),这些函数可以放在构造函数中,也可以不放。二、torch.nn的应用。通常引入的时候写成:import torch.nnimport torch.nn.functional as F这里我们把函数写在了构造函数中原创 2021-11-01 22:06:06 · 17134 阅读 · 0 评论 -
pytorch中torch.optim的介绍
pytorch中torch.optim的介绍这是torch自带的一个优化器,里面自带了求导,更新等操作。开门见山直接讲怎么使用:常用的引入:import torch.optim as optim#使用:#创建一个优化器优化方式可以是SGD等,这里写的是Adamoptimizer = optim.Adam(model.parameters())#这期间需要自己选定损失函数并且向前传播完成def train(model, device, train_loader, optimizer, ep原创 2021-11-01 22:16:12 · 584 阅读 · 0 评论 -
pytorch之求导和反向传播,.backward()函数,权值更新
@TOC一、求导在pytorch中有自动求导功能,张量tensor中有一个参数requires_grad,当我们创建一个tensor时设置其为True时即标记为自动求导,此时这个张量参与的运算会被跟踪记录,其默认值是false需要注意的是,这个requires_grad是具有传递性的,用图和代码举个例子:再用代码演示一次:x = torch.ones(2,2,requires_grad=True) #requires_grad默认是falsey = torch.ones(2,2)z = to原创 2021-10-26 21:32:13 · 364 阅读 · 0 评论