![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch
月下花弄影
登山,高一步则多一层境界
展开
-
pytorch中如何同时对image,bounding box, instance mask 进行相同的图像变换?
在目标检测或者分割的时候,我们需要同时对图像和对应的方框或mask进行相同的变换,然后作为ground truth训练模型。pytorch提供这样的服务,且十分简单,只要自己定义自己的函数即可,然后调用。这里以旋转为例:def my_transform(image, mask): image = F.to_pil_image(image) mask = F.to_pil_image(mask) if random.random() > 0.1:#原创 2020-06-25 10:26:47 · 1813 阅读 · 0 评论 -
pytorch保存和加载模型的两种方式
pytorch中保存和加载模型是绑在一起的。这里我需要注意一下不同的保存方式对应不同的读取方式,两者各有利弊。首先说说pytorch.save()这个函数,可以参考官网:pytroch.save。简而言之,这个函数可以保存任意的东西,比如tensor或者模型,或者仅仅是模型的参数。如果将保存对象局限在模型上,通常来说我们有两种方式:直接保存所有的模型,只保存模型中的参数(模型结构就保存了)。以下分别说说两种不同的方式。为了说明,我们先建立一个简单的模型。import torchimport t原创 2020-06-22 21:09:01 · 8454 阅读 · 0 评论 -
pytorch中int和float如何进行转化?
优先使用:torch.tensor(已有数据,dtype=torch.float)这个方法比较好可以看例子。这也可以反向运行。为什么第二个成为这样,有待确认。有人知晓,还请告知。...原创 2019-11-21 17:07:20 · 22810 阅读 · 1 评论 -
torch.stack 和 torch.cat 错误:argument 'tensors' (position 1) must be tuple of Tensors, not Tensor
本篇博文介绍pytorch中一些函数的输入问题,主要是tensor 和 tensors的区别。在pytorch中我们也有对一个数据的叠加:pytorch.stack ,这个函数可以在数据叠加的同时,扩展数据维度。比如说我们把三个数叠加到一起,可以组成一个二维的矩阵,得到的二维矩阵可以是[1, 2],也可以是[2, 1]。pytorch.cat,这个函数是直接把两个数据连接起来,维度是不变的。...原创 2019-09-03 07:06:03 · 21059 阅读 · 1 评论 -
pytorch使用 to 进行 类型转换
在程序中,有多种方法进行强制类型转换。本博文将介绍一个非常常用的方法:to()方法。我们通常使用它来进行GPU和CPU的类型转换,但其实也可以用来进行torch的dtype转换。常见方法:tensor.to(‘cuda:0’)先看官网介绍:**Performs Tensor dtype and/or device conversion. A torch.dtype and torch.d...原创 2019-08-31 18:16:24 · 16279 阅读 · 0 评论 -
【pytorch+全连接层】mnist分类问题【尽可能的高准确率,99%以上】
要求使用pytorch,使用全连接层,而不是用卷积层,要求有两层隐含层尽可能提高准确率本博客要求使用GPU,否则CPU可能需要半天时间才能运行出来结果要求下载CSV格式的mnist数据(可以在我上一篇博客里面下载)注意:全连接层也是可以将准确率训练到99%以上的,不要以为只有卷积层才可以。毕竟mnist是一个简单的数据集。在上一篇博客中,我用纯python写了mnist的分类,在小...原创 2019-04-19 08:40:24 · 5963 阅读 · 2 评论 -
pytorch 基本函数中的 dim【详细说明】:以torch.argmax为例
pytorch中有很多自带函数,掌握好这些函数,程序写起来当然非常有效率。在这些pytorch函数中,很多都有dim这个控制参数,但是我们很难明白这个含义是什么。本文试着总结一下:1)dim的不同值表示不同维度。特别的在dim=0表示二维中的行,dim=1在二维矩阵中表示行。广泛的来说,我们不管一个矩阵是几维的,比如一个矩阵维度如下:(d0,d1,...,dn−1)(d_0, d_1, .....原创 2019-03-17 09:24:33 · 45340 阅读 · 12 评论 -
基于pytorch 的 orthogonal_regularization(正交规范化)实现
认为参数需要满足一定条件,希望卷积层参数是正交的。如果不是正交的,计算与正交之间的距离,然后作为损失进行优化。本程序给出了orthogonal regularization的pytorch的实现,直接返回模型的损失。import torchdef orthogonal_regularization(model, device, beta=1e-4): r""" au...原创 2019-02-19 14:15:03 · 7078 阅读 · 7 评论 -
SA-GAN: self-attention 的 pytorch 实现(针对图像)
############################### self attention layer# author Xu Mingle# time Feb 18, 2019##############################import torch.nn.Moduleimport torchimport torch.nn.initdef init_conv(conv,...原创 2019-02-18 16:14:14 · 6904 阅读 · 6 评论 -
pytorch中(函数名有下划线和没有下划线)clamp和clamp_的区别
在pytorch中,我们需要注意,对于tensor的操作时候是in-place类型。in-place类型是指,但在一个tensor上操作了之后,是直接修改了这个tensor,还是返回一个新的tensor,而旧的tensor并不修改。pytorch中,一般来说,如果对tensor的一个函数后加上了下划线,则表明这是一个in-place类型如:clamp 和 clamp_ (以下为实际例子)...原创 2019-02-08 22:08:56 · 8716 阅读 · 4 评论 -
pytorch,tensorflow,matplotlib.pyplot 读取图片的及其注意事项
在图片的深度学习中,我们经常需要画出图片。当我们需要在多种框架中转换时,尤其需要注意图片的格式问题。matplotlib.pyplot.imshow()这个函数的格式是 Height, Width, Channel, 特别需要注意这里channnel的位置。输入的数据范围有两个0到1的小数,或者0到255的整数。所以需要注意这想要展示图片的数据格式官方网址pytorch中的torch...原创 2019-01-16 19:39:42 · 2002 阅读 · 0 评论 -
【已解决】Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same
在运行torch中出现这个错误。错误内容大概就是指输入类型是CPU(torch.FloatTensor),而参数类型是GPU(torch.cuda.FloatTensor)。关于数据类型的链接:官方链接首先,请先检查是否正确使用了CUDA。通常我们这样指定使用CUDA:device = torch.device("cuda" if torch.cuda.is_available() el...翻译 2019-01-21 15:13:02 · 146997 阅读 · 43 评论 -
torch 梯度计算出现错误a leaf Variable that requires grad has been used in an in-place operation和梯度NoneType问题
在计算梯度时可能会出现两个主要错误a leaf Variable that requires grad has been used in an in-place operation.unsupported operand type(s) for *: ‘int’ and ‘NoneType’在CS231n的assignment3 中我们会对卷积可视化,其中一个就是fooling image。...原创 2019-01-15 15:23:11 · 7150 阅读 · 1 评论 -
【细节讲解】GAN: walking in latent space 如何探索潜在空间?结合DCGAN论文
结合DCGAN论文,本博客旨在讲解如何探索潜在空间。在DCGAN中,我们利用噪声 zzz 产生图片。我们想探索噪声对最终图片的影响,并且试图证明GAN网络并不是简单的记住了训练样本。这个噪声 zzz 所在的空间就是所谓的潜在空间。看到DCGAN原文的人,一定知道怎么探索,那就是利用插值的方法。**但是如何插值呢?**本博客就是手把手教你如何插值。从理论到代码。1.怎么做插值?随机噪声 z...原创 2019-01-14 14:55:08 · 9680 阅读 · 4 评论 -
ConvTranspose2d原理,深度网络如何进行上采样?
在生成图像中,我们需要不断的扩大图像的尺寸。目前在深度学习中,ConvTranspose2d是其中一个方法。在DCGAN(Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks)(原文地址)中就是用这个来实现的。别名:convTranspose2d 是pytor...原创 2019-01-11 15:53:33 · 111546 阅读 · 75 评论