函数
文章平均质量分 55
hazel爱吃肉
make it count
展开
-
PIL将png的RGBA四通道改为jpg的RGB三通道方法
将一张png图像使用PIL读入的时候,发现是一个四通道图像,即:RGBA,分别代表Red(红色)Green(绿色)Blue(蓝色)和Alpha的色彩空间。其中Alpha通道一般用做透明度参数,这就是为啥透明图像都保存成了png格式。那么如果将4通道的png图像读入成jpg格式的3通道呢?使用PIL可以使用 Image.convert(" ") 的方法from PIL import Imageimg = Image.open('test.png')# 将一个4通道转化为rgb三通道img = i原创 2022-04-20 19:42:29 · 3277 阅读 · 0 评论 -
parse_args()
# 1引入模块import argparse # 2建立解析对象parser = argparse.ArgumentParser() # 3增加属性:给xx实例增加一个aa属性 # xx.add_argument("aa")parser.add_argument("echo") # 在 add_argument 前,给属性名之前加上“- -”,就能将之变为可选参数parser.add_argument("--bool",help = "Whether to pirnt sth..原创 2022-05-19 09:33:25 · 162 阅读 · 0 评论 -
交叉熵损失函数详解
交叉熵损失函数原理详解之前在代码中经常看见交叉熵损失函数(CrossEntropy Loss),只知道它是分类问题中经常使用的一种损失函数,对于其内部的原理总是模模糊糊,而且一般使用交叉熵作为损失函数时,在模型的输出层总会接一个softmax函数,至于为什么要怎么做也是不懂,所以专门花了一些时间打算从原理入手,搞懂它,故在此写一篇博客进行总结,以便以后翻阅。交叉熵简介交叉熵是信息论中的一个重要概念,主要用于度量两个概率分布间的差异性,要理解交叉熵,需要先了解下面几个概念。信息量信息奠基人香农(Sh转载 2022-05-17 16:39:06 · 729 阅读 · 0 评论 -
one hot编码及torch.Tensor.scatter_()函数详解
one hot 编码One Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。One Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。应用实例torch.Tensor.scatter_()函数示例dim=0import torchx = torch.tensor(原创 2022-05-18 12:06:18 · 2314 阅读 · 0 评论 -
requires_grad,grad_fn,grad的含义及使用
requires_grad: 如果需要为张量计算梯度,则为True,否则为False。我们使用pytorch创建tensor时,可以指定requires_grad为True(默认为False),grad_fn: grad_fn用来记录变量是怎么来的,方便计算梯度,y = x*3,grad_fn记录了y由x计算的过程。grad: 当执行完了backward()之后,通过x.grad查看x的梯度值。创建一个Tensor并设置requires_grad=True,requires_grad=True说明该变转载 2022-05-19 15:32:18 · 1304 阅读 · 1 评论 -
BCE、CE、MSE损失函数
一、BCELoss代码实现分别提供两种方式:一种是调用官方的nn.BCELoss的API,另一种是自定义函数实现:# 1、使用APIimport torchimport torch.nn as nntorch.manual_seed(15)output = torch.randn([2,3])print("output:","\n",output)target = torch.tensor([[0,0,1],[1,0,0]],dtype=torch.float32)print("ta转载 2022-05-13 19:18:10 · 4019 阅读 · 0 评论 -
dice loss
Dice Loss 最先是在VNet 这篇文章中被提出,后来被广泛的应用在了医学影像分割之中。Dice 系数Dice系数作为损失函数的原因和混淆矩阵有着很大的关系,下图给出的是一个混淆矩阵:其中的一些关键指标如下:精确率(precision)表示的是预测为正且真实为正的占预测为正的比例召回率(recall)表示的是预测为正且真实为正的占样本为正的比例在医学图象分割的时候我们希望这两个值越大越好,但是精确率和召回率是相互制约的,精确率越高则召回率相对较低,精确率越低则召回率相对较高转载 2022-05-10 09:34:51 · 16920 阅读 · 0 评论 -
Pytorch保存和加载模型(load和load_state_dict)
Pytorch目前成为学术界最流行的DL框架,没有之一。很大程度上,简洁直观地操作有关。模型的保存和加载,于pytorch而言,也是很简单的。本文做了一个比较实验,方便大家理解。首先,要清楚几个函数:torch.save,torch.load,state_dict(),load_state_dict()。先举最简单的例子:import torchmodel = torch.load('my_model.pth')torch.save(model, 'new_model.pth')上面的代码原创 2022-05-19 09:55:54 · 4456 阅读 · 0 评论 -
pytorch 中 torch.optim.Adam 方法的使用和参数的解释
class torch.optim.Adam(params, lr=1e-3, betas=(0.9, 0.999), eps=1e-8,weight_decay=0, amsgrad=False, *, maximize: bool = False)它在Adam: A Method for Stochastic Optimization中被提出参数params (iterable) – 待优化参数的iterable或者是定义了参数组的dictlr (float, 可选) – 学习率(默认:1e-原创 2022-05-06 16:27:47 · 4571 阅读 · 0 评论 -
GDAL基本函数用法
#1*波段组成图像,波段指挥颜色import gdal #导入库dataset=gdal.open(“filename”) #文件名,如*.tifdir(dataset) #可通过dir()来显示信息,或者某个函数的用法or print(dataset)#基本函数dataset.GetDescription() #获得栅格的描述信息dataset.RasterCount #获得栅格数据集的波段数band=dataset.GetRasterBand(1) #获得原创 2022-03-08 13:16:38 · 4338 阅读 · 0 评论 -
pytorch怎么使用model.eval()和BN层
使用代码如下:class ConvNet(nn.module): def __init__(self, num_class=10): super(ConvNet, self).__init__() self.layer1 = nn.Sequential(nn.Conv2d(1, 16, kernel_size=5, stride=1, padding=2), nn.BatchNorm2d(16)原创 2022-05-06 15:12:56 · 400 阅读 · 0 评论 -
with torch.no_grad() 详解
在使用pytorch时,并不是所有的操作都需要进行计算图的生成,只是想要网络结果的话就不需要后向传播 ,如果你想通过网络输出的结果去进一步优化网络的话 就需要后向传播了。不使用with torch.no_grad():此时有grad_fn=属性,表示,计算的结果在一计算图当中,可以进行梯度反传等操作。**使用with torch.no_grad()**表明当前计算不需要反向传播,使用之后,强制后边的内容不进行计算图的构建示例如下:此时的outputs没有 属性。可以看..原创 2022-04-11 16:04:41 · 29113 阅读 · 2 评论 -
padding_type
参考于:https://blog.csdn.net/Vipbinn/article/details/82894863研读代码时遇到 padding_type=‘reflect’ 时很不解,搜也没直接搜到结果,但看到TensorFlow中有关于pad函数的使用方法,想来都是填充,应该都是相通的,看完后豁然开朗!tf.pad( tensor, #被填充的张量 paddings, #填充的格式 mode='CONSTANT' #填充模式:"CONSTANT"原创 2021-11-13 14:48:16 · 691 阅读 · 0 评论 -
np.random.permutation()函数用法
np.random.permutation()随机排列序列多维度原创 2022-05-06 16:03:58 · 341 阅读 · 0 评论 -
PyTorch中nn.ReLU()用法
ReLU(x)=max(0, max)nn.ReLU()函数默认inplace 默认是Falseinplace = False输出对象地址,不会修改输入对象的值,而是返回一个新创建的对象,所以打印出对象存储地址不同,类似于C语言的值传递inplace=True输出对象地址,会修改输入对象的值,所以打印出对象存储地址相同,类似于C语言的地址传递inplace = True,节省反复申请与释放内存的空间与时间,只是将原来的地址传递,效率更好...原创 2022-05-05 21:11:55 · 3281 阅读 · 0 评论 -
os.environ()详解
1.作用在 python 中通过 os.environ 可以获取有关系统的各种信息通过 os.environ 获取环境变量,什么是环境变量呢?环境变量是程序和操作系统之间的通信方式。有些字符不宜明文写进代码里,比如数据库密码,个人账户密码,如果写进自己本机的环境变量里,程序用的时候通过 os.environ.get() 取出来就行了。这样开发人员本机测试的时候用的是自己本机的一套密码,生产环境部署的时候,用的是公司的公共账号和密码,这样就能增加安全性。os.environ 是一个字典,是环境变量的字典原创 2022-05-06 15:48:03 · 18636 阅读 · 0 评论 -
range函数用法
1.range(m)输出: [0,1,…,m-1](从0到m-1的一个list,不包括m)2.range(m,n),m<n输出:[m,m+1,…,n-1](从m到n-1的一个list,不包括n)3.range(m,n,k)输出:[m,m+k,m+2k,…](从m开始,间隔为k的一个list,不包括n)...原创 2021-11-13 15:11:18 · 1462 阅读 · 0 评论 -
torch.max()、torch.mean()用法
max()参数:dim=0,返回每一列中最大值的那个元素,且返回索引(返回最大元素在这一列的行索引)dim=1,返回每一行中最大值的那个元素,且返回其索引(返回最大元素在这一行的列索引)示例:import torcha = torch.randn(3,3)print(torch.max(a,0))print(torch.max(a,1))----------------------------# 输出torch.return_types.max(values=tensor([0..原创 2022-05-05 20:15:29 · 642 阅读 · 0 评论 -
python字符串格式化输出
python字符串格式化输出转载 2022-06-01 23:03:29 · 3333 阅读 · 1 评论 -
Python将二维数组/多维数组转换为一维
Python将二维数组/多维数组转换为一维原创 2022-06-01 22:04:51 · 7379 阅读 · 0 评论 -
np.squeeze()与np.squeeze()函数详解
squeeze函数与unsqueeze函数原创 2022-06-01 11:23:55 · 3138 阅读 · 0 评论