![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
pytorch
记录pytorch框架编程遇到的一些问题
Rainlin.Zhang
这个作者很懒,什么都没留下…
展开
-
pytorch 负对数似然损失和交叉熵损失
一.负对数似然似然是已知数据,推参数,我们通过极小化负对数似然(最大似然),来求最佳的模型参数二.交叉熵损失而在训练过程中,标签通常采用one-hot编码表示,而样本真实分布的概率,这样交叉熵的表示形式其实是跟负对数似然一样的三.pytorch实现的区别1.在使用nn.NLLLoss()是,需要结合nn.LogSoftmax()一起使用,而nn.CrossEntropyLoss()不需要。2.使用nn.CrossEntropyLoss()时,网络的最后一层不需要加softma.原创 2022-05-29 21:30:49 · 605 阅读 · 0 评论 -
tensor.max方法
pred = torch.tensor([[0.7,0,0.2,0.1,0],[0,0.2,0.4,0.3,0.1]])pred.max(1, keepdim=True)[1]输出:pred.max(1, keepdim=False)[1]输出:可以用在softmax后取出最大概率所在的索引tensor.max(1,keepdim)[1]:返回索引tensor.max(1,keepdim)[0]:返回最大值1指第一维度,第0维一般为batchsize...原创 2022-05-13 16:02:43 · 3849 阅读 · 0 评论 -
用随机种子对image和mask做同样的数据增强
pytoch中的torchvision.transform是对输入数据按照一定概率做随机的变换,在神经网络中训练时候自然要保证input和target的一致性。from PIL import Imagefrom torchvision import transformsimport matplotlib.pyplot as pltimport randomimport numpy as npimport osimport torchos.environ["KMP_DUPLICATE_L原创 2022-04-18 19:59:34 · 989 阅读 · 1 评论 -
pytorch自定义调整学习率的方法
一种自己设置调整学习率的方法,可以放在epoch循环里。1.optimizer.state_dict()和optimizer.param_groupsoptimizer.state_dict()是一个字典,和model.state_dict()类似,包含优化器的state信息和param_groups的字典对象optimizer = torch.optim.Adam(Net.parameters(),lr=lr)print(optimizer.state_dict().keys())输原创 2022-04-11 23:12:14 · 1681 阅读 · 0 评论 -
Pytorch初始化模型权重最快捷的方法
用self.modules()方法批量初始化模型用self.modules()可以遍历组成网络的所有模块,以及这些模块的后代模块。Example:创建一个网络,其中包括一个预先定义的DoubleConv类class DoubleConv(nn.Module): def __init__(self,in_channels,out_channels): super(DoubleConv,self).__init__() self.conv = nn..原创 2022-04-11 18:55:45 · 2197 阅读 · 0 评论