分类:PyTorch
2021
07-09
2021
07-09
通常,由于类别不均衡,需要使用weightedcrossentropyloss平衡。definverse_freq(label):"""输入label[N,1,H,W],1是channel数目"""den=label.sum()#0_,_,h,w=label.shapenum=h*walpha=den/num#0returntorch.tensor([alpha,1-alpha]).cuda()#train...loss1=F.cross_entropy(out1,label.squeeze(1).long(),weight=inverse_freq(label))补充:Pytorch踩坑记之交叉熵(nn.CrossEntropy...
继续阅读 >
首先必须将权重也转为Tensor的cuda格式;然后将该class_weight作为交叉熵函数对应参数的输入值。class_weight=torch.FloatTensor([0.13859937,0.5821059,0.63871904,2.30220396,7.1588294,0]).cuda()补充:关于pytorch的CrossEntropyLoss的weight参数首先这个weight参数比想象中的要考虑的多你可以试试下面代码importtorchimporttorch.nnasnninputs=torch.FloatTensor([0,1,0,0,0,1])outputs=torch.LongTensor([0,1...
继续阅读 >
2021
07-09
目录一、前言二、Dataset三、DatasetLoader四、将Dataset数据和标签放在GPU上(代码执行顺序出错则会有bug)一、前言确保安装scikit-imagenumpy二、Dataset一个例子:#导入需要的包importtorchimporttorch.utils.data.datasetasDatasetimportnumpyasnp#编造数据Data=np.asarray([[1,2],[3,4],[5,6],[7,8]])Label=np.asarray([[0],[1],[0],[2]])#数据[1,2],对应的标签是[0],数据[3,4],对应的标签...
继续阅读 >