随笔分类 - PyTorch
深度学习-卷积神经网络
摘要:Encoder代码为: 判别器为: 重点在: layers = list(model.main.children()) self.features = nn.Sequential(*layers[:-1]) :使用除了最后一层的前面所有层 self.classifier = nn.Sequentia
阅读全文
摘要:之前我们使用nn.Sequential()都是直接写死的,就如下所示: 那如果我们想要根据条件一点点添加进去,那就可以使用其的add_module方法 torch.nn.Module.add_module 添加子模块到当前模块中 该添加子模块能够使用给定的名字name来访问 参数: name (st
阅读全文
摘要:1.DataParallel layers (multi-GPU, distributed) 1)DataParallel 实现模块级别的数据并行 该容器是通过在batch维度上将输入分到指定的device中来在给定的module应用上实现并行。在前向传播中,模块module将在每个设备device
阅读全文
摘要:返回所给tensor的矩阵范数或向量范数 参数: input:输入tensor p (int, float, inf, -inf, 'fro', 'nuc', optional):范数计算中的幂指数值。默认为'fro' dim (int,2-tuple,2-list, optional): 指定计算
阅读全文
摘要:1)ReflectionPad2d 使用输入边界的反射来填充输入tensor 对于N维的填充,使用torch.nn.functional.pad() 参数: padding(int, tuple):指定填充的大小。如果是一个整数值a,则所有边界都使用相同的填充数,等价于输入(a,a,a,a)。如果是
阅读全文
摘要:当你想要对图像设置transforms策略时,如: 但是有时官方提供的方法并不能够满足你的需要,这时候你就需要自定义自己的transform策略 方法就是使用transforms.Lambda 举例说明: 比如当我们想要截取图像,但并不想在随机位置截取,而是希望在一个自己指定的位置去截取 那么你就需
阅读全文
摘要:在pytorch中提供了很多预训练好的模型,以分类为例,基本上都是用ImageNet数据集来训练的,分为1000类。 但是很多时候我们要实现的分类项目可能并没有这么简单,比如我们可能并不仅仅只是实现单分类,可能想实现双分类或者是多分类,这个时候就需要对模型进行一定的修改 修改的同时还希望该修改后的模
阅读全文
摘要:参考:https://blog.csdn.net/liuxiao214/article/details/81037416 归一化层,目前主要有这几个方法,Batch Normalization(2015年)、Layer Normalization(2016年)、Instance Normalizat
阅读全文
摘要:参考:https://pytorch.org/docs/master/optim.html#how-to-adjust-learning-rate torch.optim.lr_scheduler提供了几种方法来根据迭代的数量来调整学习率 自己手动定义一个学习率衰减函数: def adjust_le
阅读全文
摘要:损失函数的基本用法: 得到的loss结果已经对mini-batch数量取了平均值 1.BCELoss(二分类) 创建一个衡量目标和输出之间二进制交叉熵的criterion unreduced loss函数(即reduction参数设置为'none')为: N表示batch size,xn为输出,yn
阅读全文
摘要:解决办法: 在代码中添加两行
阅读全文
摘要:参考:https://github.com/chenyuntc/pytorch-book/tree/v1.0/chapter7-GAN生成动漫头像 GAN解决了非监督学习中的著名问题:给定一批样本,训练一个系统能够生成类似的新样本 生成对抗网络的网络结构如下图所示: 生成器(generator):输
阅读全文
摘要:参考:https://www.jianshu.com/p/aee6a3d72014 再加载预训练模型时,最好指定map_location。因为如果程序之前在GPU上运行,那么模型就会被存为torch.cuda.Tensor,这样加载时会默认将数据加载至显存。如果运行该程序的计算机中没有GPU,加载就
阅读全文
摘要:https://pytorch.org/docs/stable/nn.html 1)卷积层 class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1,
阅读全文
摘要:1.当设置group=1时: conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=1) conv.weight.data.size() 返回: torch.Size([6, 6, 1, 1]) 另一个例子: co
阅读全文
摘要:如果我们设置的dilation=0的话,效果如图: 蓝色为输入,绿色为输出,可见卷积核为3*3的卷积核 如果我们设置的是dilation=1,那么效果如图: 蓝色为输入,绿色为输出,卷积核仍为3*3,但是这里卷积核点与输入之间距离为1的值相乘来得到输出 好处: 这样单次计算时覆盖的面积(即感受域)由
阅读全文
摘要:参考:https://github.com/milesial/Pytorch-UNet 实现的是二值汽车图像语义分割,包括 dense CRF 后处理. 使用python3,我的环境是python3.6 1.使用 1> 预测 1)查看所有的可用选项: 返回: 2)预测单一图片image.jpg并存储
阅读全文
摘要:https://github.com/lucasb-eyer/pydensecrf/blob/master/examples/inference.py 1.运行 先运行看看实现的结果: im1.png和anno1.png是输入图片,out1.png为进行crf处理后的输出图片 im1.png和ann
阅读全文
摘要:参考:https://github.com/lucasb-eyer/pydensecrf 1.使用 对于图像来说,最简单的使用该库的方法是使用DenseCRF2D类: 2.一元势 Unary potential 你可以使用下面的方法设置固定的一元势 一元势即网络预测得到的结果,进行-np.log(p
阅读全文
摘要:本笔记本通过一个示例说明如何在非rgb数据上使用DenseCRFs。同时,它将解释基本概念并通过一个示例进行演示,因此即使您正在处理RGB数据,它也可能是有用的,不过也请查看PyDenseCRF's README ! 在jupyter notebook上运行https://github.com/lu
阅读全文