pytorch
文章平均质量分 69
一只tobey
中国,广州,从城中到乡下,再从乡下进城里,保持努力!
展开
-
from torch.utils.data import DataLoader DataLoader类
from torch.utils.data import DataLoaderdataloader = DataLoader(dataset,batch_size=5,shuffle=True,num_workers=2) # 实例化 参数dataset是一个数据集(这一点个人认为描述的很大)batch_size默认是1,是一次性读取多少张图片,下面中称呼为采样器个数shuffl...原创 2018-09-13 10:50:18 · 14611 阅读 · 0 评论 -
动态导入模块,加载预训练模型,nn.Sequential函数里面必须是a Module subclass,不能是一个列表或者是其他的迭代器、生成器,虽然这里面包含了Module的子类
如果想看该sequence(假设sequence = nn.Sequential(......),直接打印该网络就可以:print(sequence)如果RES是一个model也可以直接打印来查看里面的结果:print(RES)class RES(nn.Module): def __init__(self): super(RES, self).__init__...原创 2018-10-30 12:29:28 · 7179 阅读 · 1 评论 -
pytorch 训练数据以及测试 全部代码(9)---deeplab v3+ 对Cityscapes数据的处理
下面是全部的代码:import osimport torchimport numpy as npimport scipy.misc as mfrom PIL import Imagefrom torch.utils import datafrom dataloaders.utils import recursive_glob, decode_segmapfrom mypath...原创 2018-12-01 09:49:58 · 8688 阅读 · 9 评论 -
pytorch源码解读之torchvision.transforms,用法介绍
转载自:https://www.jianshu.com/p/1ae863c1e66dPyTorch框架中有一个非常重要且好用的包:torchvision,该包主要由3个子包组成,分别是:torchvision.datasets、torchvision.models、torchvision.transforms。这3个子包的具体介绍可以参考官网:http://pytorch.org/docs/m...转载 2019-02-23 19:33:45 · 468 阅读 · 0 评论 -
用tensorflow,pytorch框架使用GPU,指定GPU问题
pytorch:单个GPU指定使用:1.在代码上指定(建议这种指定方式)import osos.environ["CUDA_VISIBLE_DEVICES"] = "2" # 指定第二块gpu2.使用set_device指定import torchtorch.cuda.set_device(0) # 不能设定两个,比如0,2查看pytorch所使用的gpu...原创 2019-03-08 14:40:22 · 1937 阅读 · 0 评论 -
数据处理中ToTensor紧接着Normalize
transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5)) ])ToTensor的作用:另外一个作用就是将数据全部归一化到了(0,1)Convert a ``PIL Image`` or ``num...原创 2019-03-08 16:18:07 · 3317 阅读 · 0 评论 -
各种随机数,设定随机种子
def setup_seed(seed): torch.manual_seed(seed) torch.cuda.manual_seed_all(seed) np.random.seed(seed) random.seed(seed) torch.backends.cudnn.deterministic = True# 设置随机数种子setu...转载 2019-05-27 15:32:19 · 3720 阅读 · 0 评论 -
torch.nn.BCELoss()=F.binary_cross_entropy()
class BCELoss(_WeightedLoss): def __init__(self, weight=None, size_average=True, reduce=True): super(BCELoss, self).__init__(weight, size_average, reduce) def forward(self, input, ta...原创 2019-05-27 16:58:28 · 10986 阅读 · 1 评论 -
生成随机数Tensor的方法汇总(均匀分布,标准正态分布,离散正态分布,线性间距向量)
PyTorch 常用方法总结1:生成随机数Tensor的方法汇总(标准分布、正态分布……)均匀分布:torch.rand()标准正态分布:torch.randn()离散正态分布:torch.normal()线性间距向量:torch.linespace()...转载 2019-05-23 22:55:39 · 1996 阅读 · 0 评论 -
pytorch入门系列
pytorch入门系列转载 2019-05-23 23:16:14 · 159 阅读 · 0 评论 -
CrossEntropyLoss函数,里面还包含了nn.LogSoftmax函数和nn.NLLLoss函数
对于单样本:其中lable是一个数字(最小为0最大为C-1)代表x属于哪一类,y是lable的one hot 编码。举例:x是一个4分类的一个样本: x=[1, 33.1, 77.02, 3.78],label=2,y=[0,0,1,0],这里C=4对于多样本:举例:X=[ [1, 2.22, 3.35, 4], [5, 6, 7.2, 8] ],target=[1,0],Y=[ ...原创 2019-05-24 01:10:01 · 2436 阅读 · 0 评论 -
Expected object of backend CPU but got backend CUDA for argument #2 'weight' 报错的问题和解决办法
PyTorch代码调试利器TorchSnooper: 自动print每行代码的Tensor信息用于 PyTorch 代码的实用工具 TorchSnooper。作者是TorchSnooper的作者,也是PyTorch开发者之一。GitHub 项目地址: https://github.com/zasdfgbnm/TorchSnooper大家可能遇到这样子的困扰:比如说运行自己编写的 ...转载 2019-06-22 02:40:08 · 20670 阅读 · 6 评论 -
激活函数记录
tf.nn.softplus():输入是features log(exp(features) + 1)tf.nn.softsign():输入是features features / (abs(features) + 1)tf.nn.relu(): max(features, 0)tf.nn.relu6(): min(max(features, 0),6)tf.nn.sof...原创 2019-07-04 18:30:28 · 146 阅读 · 0 评论 -
权重初始化的方法
在以往的文章里面,全连接层的权重我是给初始化成0的,但卷积层是初始化成正态分布。其实,权重初始化成0是一件很糟糕的事情。权重初始化全部为0就会造成网络对称问题,把这个结论推导到卷积层,自然结果也是一样,所以,把权重初始化为0是一件很笨的事情。为了克服这种现象,我们一般选择随机正态分布初始化权重,但是随机正态分布初始化的缺点就是初始化可能权重很小也可能很大。1.自编码器中的一种参数初始化方法...原创 2019-07-05 11:32:52 · 1794 阅读 · 0 评论 -
pytorch 中的view和permute的用法
view相当于numpy中resize()的功能,但是用法可能不太一样.可以参考:https://blog.csdn.net/york1996/article/details/81949843view只能用在contiguous的variable上。如果在view之前用了transpose,permute等,需要用contiguous()来返回一个contiguous copy 可参考:htt...转载 2018-10-29 14:56:30 · 9806 阅读 · 1 评论 -
pytorch 训练数据以及测试 全部代码(8) 对resnet也就是(5),(6),(7) 网络的梳理
输入:6x3x512x512输出:6x21x512x512resnet101是除去最后的全连接层,得到浅层的输出low_level_feature为6x256x128x128,深层的输出X为6x2048x32x32详细的网络图如下图:4个ASPP全部输出X1,X2,X3,X4都是6x256x32x32global_avg_pool:输入是6x2048x32x32...原创 2018-10-21 15:53:18 · 1626 阅读 · 4 评论 -
pytorch 训练数据以及测试 全部代码(7) 网络
ASPP网络class ASPP_module(nn.Module): def __init__(self, inplanes, planes, rate): pass def forward(self, x): pass def _init_weight(self): pass第一个函数 def __i...原创 2018-10-20 23:11:04 · 3337 阅读 · 0 评论 -
pytorch 训练数据以及测试 全部代码(1)
这个是deeplabV3+的训练代码,用于训练的数据是VOC2012 和SBD数据import socketimport timeitfrom datetime import datetimeimport osimport globfrom collections import OrderedDict# PyTorch includesimport torchfrom t...原创 2018-09-27 15:21:11 · 6222 阅读 · 3 评论 -
pytorch 训练数据以及测试 全部代码(2)
p={‘trainBatch’:6, 'nAveGrad':1, 'lr':1e-07, 'wd':0.0005, 'momentum':0.9,'epoch_size':10, 'optimizer':'SGD()'}最后一个optimizer的值是很长的字符串就不全部写出来了。这个字典长度是7。其中的net 和criterion在稍后来进行讲解if resume_epoch==0,那么...原创 2018-09-27 16:12:15 · 2507 阅读 · 1 评论 -
pytorch 训练数据以及测试 全部代码(3)
if epoch % p['epoch_size'] == p['epoch_size'] - 1: lr_ = utils.lr_poly(base_lr=p['lr'], iter_=epoch, max_iter=nEpochs, power=0.9) print('(poly lr policy) learning rate: ', lr_) optimizer ...原创 2018-09-30 22:50:35 · 3511 阅读 · 1 评论 -
torch.nn.CrossEntropyLoss的相关
参数可以看下面class CrossEntropyLoss(_WeightedLoss): def __init__(self, weight=None, size_average=True, ignore_index=-100, reduce=True): pass def forward(self, input, target): pass解释:网上的一些...原创 2018-10-13 20:22:12 · 10277 阅读 · 2 评论 -
pytorch 训练数据以及测试 全部代码(6) 网络
ResNet101和ASPPmodel = ResNet(nInputChannels, Bottleneck, [3, 4, 23, 3], os, pretrained=pretrained)nInputChannels=3,os=16,其中Bottleneck是一个网络:class Bottleneck(nn.Module)先看Bottleneck网络:class Bo...原创 2018-10-18 16:40:47 · 2361 阅读 · 1 评论 -
pytorch 训练数据以及测试 全部代码(4)
接到上文 # Show 10 * 3 images results each epoch if ii % (num_img_tr // 10) == 0: grid_image = make_grid(inputs[:3].clone().cpu().data, 3, normalize=True) ...原创 2018-10-16 12:27:39 · 6126 阅读 · 0 评论 -
符号*,torch.max 和 torch.sum, item()方法
*的作用可以参考https://www.cnblogs.com/jony7/p/8035376.htmltorch.max可以参考https://blog.csdn.net/Z_lbj/article/details/79766690a.size()# Out[134]: torch.Size([6, 4, 3])torch.max(a, 0)[1].size()# Out[135...转载 2018-10-16 17:26:01 · 12812 阅读 · 0 评论 -
Image.open 和scipy.misc.imread打开读取图片,以及torch的类型
tensorflow,numpy的顺序是(batch,h,w,c)pytorch的顺序是(batch,c,h,w)里面的图片打开属性查看,可以知道(h,w)=(375,1242) 高度(h),宽度(w)用Image打开的a是一个PIL类型的,用另外一个打开的b是numpy类型的所以a查看大小:a.size=(1242,375)=(w,h),注意a没有shape属性,另外一...原创 2018-09-12 17:24:20 · 5458 阅读 · 0 评论 -
关于类型为numpy,TensorFlow.tensor,torch.tensor的shape变化以及相互转化
1.numpy类型:numpy.ndarray 对于图片读取之后(H,W,C)或者(batch,H,W,C)(1)在元素总数不变的情况下:numpy类型的可以直接使用方法numpy.reshape任意改变大小,numpy.expand_dims增加维度,大小是1(这个函数可以参考numpy.expand_dims的用法)(2)元素总数可以变化:scipy.misc.imresize(a,...原创 2018-09-12 22:56:50 · 3721 阅读 · 5 评论 -
pytorch 训练数据以及测试 全部代码(5) 网络
from networks import deeplab_xception, deeplab_resnet# Network definitionif backbone == 'xception': net = deeplab_xception.DeepLabv3_plus(nInputChannels=3, n_classes=21, os=16, pretrained=True)...原创 2018-10-17 16:24:35 · 4190 阅读 · 0 评论 -
torch中卷积层和其它层
import torchimport torch.nn as nnimport torch.nn.functional as F详情可以参考官方文档https://pytorch-cn.readthedocs.io/zh/latest/package_references/torch-nn/#torchnn转载 2018-10-17 16:33:48 · 266 阅读 · 0 评论 -
pytorch中的上采样以及各种反操作,求逆操作
import torch.nn.functional as Fimport torch.nn as nn F.upsample(input, size=None, scale_factor=None,mode='nearest', align_corners=None) r"""Upsamples the input to either the given :attr...原创 2018-10-22 22:40:54 · 14426 阅读 · 2 评论 -
pytorch中的卷积和池化计算方式
TensorFlow里面的padding只有两个选项也就是valid和samepytorch里面的padding么有这两个选项,它是数字0,1,2,3等等,默认是0所以输出的h和w的计算方式也是稍微有一点点不同的:tf中的输出大小是和原来的大小成倍数关系,不能任意的输出大小;而nn输出大小可以通过padding进行改变nn里面的卷积操作或者是池化操作的H和W部分都是一样的计算公式:H和...原创 2018-10-20 16:36:44 · 10690 阅读 · 0 评论 -
网络的权重初始化示例
1.比较常用的就是对每一个类型的网络层进行初始化,并且作为一个函数定义在网络中。具体的初始化,按照先实例化网络再调用初始化函数来达成初始化操作。 def _load_pretrained_model(self): # 加载预训练模型参数 pretrain_dict = model_zoo.load_url('https://download.pytorch.org/m...原创 2019-07-30 19:29:38 · 1337 阅读 · 0 评论