![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Pytorch
文章平均质量分 73
Jeremy_lf
知所先后
展开
-
Pytorch中的数据转换Transforms与DataLoader
DataLoaderDataLoader是一个比较重要的类,它为我们提供的常用操作有:batch_size(每个batch的大小), shuffle(是否进行shuffle操作), num_workers(加载数据的时候使用几个子进程)import torch as timport torch.nn as nnimport torch.nn.functional as Fimport torch'''初始化网络初始化Loss函数 & 优化器进入step循环: 梯度清零 向原创 2021-04-29 15:25:19 · 5079 阅读 · 0 评论 -
Pytorch变量类型转换及One_hot编码表示
生成张量y = torch.empty(3, dtype=torch.long).random_(5)y = torch.Tensor(2,3).random_(10)y = torch.randn(3,4).random_(10)查看类型y.typey.dtype类型转化tensor.long()/int()/float()long(),int(),float() 实现类型的转化One_hot编码表示def one_hot(y): ''' y: (N)的一原创 2021-03-18 17:37:31 · 1400 阅读 · 0 评论 -
Pytorch中的分类损失函数比较NLLLoss与CrossEntropyLoss
参考来源,仅作为学习笔记二分类对于一个二分类问题,比如我们有一个样本,有两个不同的模型对他进行分类,那么它们的输出都应该是一个二维向量,比如:模型一的输出为:pred_y1=[0.8,0.2]模型二的输出为:pred_y2=[0.6,0.4]需要注意的是,这里的数值已经经过了sigmoid激活函数,所以0.8+0.2=1,比如样本的真实标签是:true_y=[1,0]现在我们来求这两个模型对于这一个类别的分类损失,怎么求?先给出二分类损失函数,表达式如下:L=−ylog(y′)+(1−y)l原创 2021-03-18 15:12:17 · 917 阅读 · 0 评论 -
Pytorch模型的存储与加载
torch.save: 将序列化对象保存到磁盘。此函数使用Python的pickle模块进行序列化。使用此函数可以保存如模型、tensor、字典等各种对象。torch.load: 使用pickle的unpickling功能将pickle对象文件反序列化到内存。此功能还可以有助于设备加载数据。torch.nn.Module.load_state_dict: 使用反序列化函数 state_dict 来加载模型的参数字典。1.state_dicttorch.nn.Module模型的可学习参数(即权重和偏原创 2021-01-19 15:26:46 · 475 阅读 · 0 评论 -
【Pytorch】在修改后的网络结构上加载Pre-trained模型以及Fine-tuning
在实际工作或者学习当中,为了节省时间提高效率,我们在深度学习训练中,一般会使用已经训练好的开源模型(一般都是基于ImageNet数据集),但通常情况下我们自己涉及的模型和别人训练好的有很多地方不一样。 难道我们就没法用了吗?当然不是,我们可以有很多种方法去实现我们想要的。其实并不是为了学习,只是在等湖人打快船比赛Pre-trained目前共有三种加载Pre-trained模型的方法:...原创 2020-03-09 18:57:53 · 1848 阅读 · 3 评论 -
目标检测中的数据增强方法及其实现
不同于图像分类中的数据增强,在目标检测中,由于涉及到了边界框(bounding box),导致有一些常用的图像增强不能用,在图像变化的时候同时要考虑到方框坐标点的变化。下面我们总结一些常用的包装好的数据增强函数。1、图像数组翻转 def random_flip(self, im, boxes): if random.random() < 0.5: ...原创 2020-02-17 21:50:18 · 5255 阅读 · 12 评论 -
Pytorch学习笔记
问题1:加载模型需要指定GPU或者CPUstate = torch.load(path, map_location=‘cuda:0’)问题2:torch.randn与torch.rand区别torch.rand(sizes, out=None) → Tensor 均匀分布torch.randn(sizes,out=None) → Tensor 标准正太分布torch.normal(me...原创 2020-01-14 14:53:15 · 221 阅读 · 0 评论 -
Pytorch—神经网络实现简单的回归任务
完整的训练过程为了更好地理解pytorch框架下如何利用神经网络训练数据,可以通过一个简单的回归任务来学习理解。第一步:生成数据集(y = a * x^2 + b)import torchfrom torch.autograd import Variableimport matplotlib.pyplot as plttorch.manual_seed(1)x = torch.u...原创 2019-12-31 16:13:58 · 4705 阅读 · 0 评论 -
Opencv常用数据增强方法:平移+旋转+缩放+模糊+光强+拉伸
旋转def rotate_func(image): cols,rows,_,=image.shape M=cv2.getRotationMatrix2D(((cols-1)/2.0,(rows-1)/2.0),angle,1) #cv2.getRotationMarix2D(point2f center,double angle,double scale) #参数分别为:旋转中心...原创 2019-12-27 20:56:20 · 5703 阅读 · 2 评论 -
Pytorch实现加载自己的数据集
我们经常会遇到这样的问题,就是如何使用自己的数据集,把标签和图片对应起来,然后转化成一个一个批次送进网络。其实在pytorch中已经为我们封装好了各种库,只需要我们添加相应的处理就好。import torch.utils.data #子类化数据import torchfrom tochvision import transforms #数据处理定义自己的dataset类:cla...原创 2019-11-08 16:42:14 · 3685 阅读 · 4 评论 -
Pytorch损失函数torch.nn.NLLLoss()详解
在各种深度学习框架中,我们最常用的损失函数就是交叉熵(torch.nn.CrossEntropyLoss),熵是用来描述一个系统的混乱程度,通过交叉熵我们就能够确定预测数据与真是数据之间的相近程度。交叉熵越小,表示数据越接近真实样本。交叉熵计算公式:就是我们预测的概率的对数与标签的乘积,当qk->1的时候,它的损失接近零。nn.NLLLoss官方文档中介绍称: nn.NLLLoss...原创 2019-10-24 16:51:58 · 57156 阅读 · 21 评论