![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch
dxz_tust
拥抱开源~
展开
-
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis原创 2022-08-10 23:41:39 · 842 阅读 · 0 评论 -
module must have its parameters and buffers on device cuda:0 (device_ids[0]) but found one of them
model = torch.nn.DataParallel(model, device_ids=[0,1,2,3])model = model.module.to(torch.device('cpu'))原创 2022-04-24 15:26:52 · 3735 阅读 · 0 评论 -
pytorch 使用copy.deepcopy(model)问题
某次做实验,为了完全复制一个新模型,使用copy.deepcopymodel2 = copy.deepcopy(model1)这样复制后model2中的param.grad都是None,原因是deepcopy 只复制了数值,并没有对相关属性做对应的copy原创 2022-04-06 20:03:16 · 2576 阅读 · 0 评论 -
pytorch dataloader中每个线程随机种子问题
今天调代码遇到一个有趣的现象,在全局设置好随机种子后,在不同的num_workers中,numpy,random,torch中生成的随机数有差别,比如下面#num_wokers=3时候,分别打印print(random.random(),torch.rand(1),np.random.rand()),#可以发现用np随机出来的值竟然是一样的,所以我们如果要想让np随机出来的值不一样,需要自己设置一个回调函数worker_init_fn0.5682499026693681 tensor([0.92原创 2022-03-08 20:06:18 · 1864 阅读 · 0 评论 -
torch.optim.lr_scheduler.OneCycleLR用法
代码:import cv2import torch.nn as nnimport torchfrom torchvision.models import AlexNetimport matplotlib.pyplot as plt#定义2分类网络steps = []lrs = []model = AlexNet(num_classes=2)lr = 0.9optimizer = torch.optim.SGD(model.parameters(), lr=lr, momentum=原创 2021-01-16 17:28:21 · 13703 阅读 · 10 评论 -
pytorch 动态量化加载权重出错unexpected keys _packed_params
相关实验代码:仅仅只是量化对应的权重层,这里只量化lstm,fc层。import numpy as npimport timeimport cv2import torchimport torch.nn as nnimport torch.nn.quantized.dynamic as nnqdclass mymodel(nn.Module): def __init__(self): super(mymodel, self).__init__()原创 2021-01-16 16:15:31 · 713 阅读 · 1 评论 -
Missing key(s) in state_dict: “total_ops“, “total_params“, “module_list.total_ops“,
这个错误是在yolov3项目上遇见的,因为使用了htop,去获取整个model 的mac,所以会导致total_params以及total_ops被注册到网络中,又因为你的pt文件中根本没有这个key,所以才会导致miss错误。使用下面两种方式查看网络的参数(被优化器可优化参数,不被优化器优化的参数)#学习参数forname,paraminmodel.named_parameters():print(name)#常量参数或者是不能被优化器优化的参数fornam...原创 2020-09-02 19:51:55 · 4031 阅读 · 11 评论 -
pytorch1.6 使用在含有RNN/LSTM网络中使用amp,出错:CUDNN_STATUS_BAD_PARAM,
with torch.cuda.amp.autocast(): preds = model(inp) batch_size = inp.size(0) text, length = converter.encode(labels) preds_size = torch.IntTensor([preds.size(0)] * batch_size) loss = criterion(preds, text, preds_siz..原创 2020-07-29 17:44:53 · 732 阅读 · 2 评论 -
关于pytorch中,dataloader中的num_work运行机制的理解
最近遇到一个问题,发现dataloader中数据加载异常的慢,慢慢的排查到了dataloader这一步,我以前一直以为num_work共同维护一个大小为batch size的队列,但是不是,它每次会开启num_work个线程,分别去加载dataset里面的数据,直到每个worker加载数据量为batch size 大小(num_work*batch_size)才会进行下一步训练。而不是我之前理解的,只要总数据量达到batch size就立刻进行下一步训练。...原创 2020-06-02 20:05:15 · 4230 阅读 · 0 评论 -
pytorch DDP模式中总是出现OOM问题。。
主要原因是没有进行及时的内存回收,导致显卡内存暴增:解决方式:在每个batch 反向传播后,加上下面的内存回收: del loss torch.cuda.empty_cache() gc.collect()另外一点是建议用loss.detach().item()来从graph中分离,这样内存占用会少一点,因为如果使用loss.item(),它默认的整个graph...原创 2020-05-28 10:43:25 · 1643 阅读 · 0 评论 -
关于pytorch 使用DDP模式(torch.nn.parallel.DistributedDataParallel)时,DistributedSampler(dataset)用法解释
最近由于要用到多卡去训模型,尝试着用DDP模式,而不是DP模式去加速训练(很容易出现负载不均衡的情况)。遇到了一点关于DistributedSampler这个采样器的一点疑惑,想试验下在DDP模式下,使用这个采样器和不使用这个采样器有什么区别。实验代码:整个数据集大小为8,batch_size 为4,总共跑2个epochimport torchimport torch.nn as nnfrom torch.utils.data import Dataset, DataLoaderfrom原创 2020-05-16 19:05:56 · 18326 阅读 · 9 评论 -
pytorch 总是遇到cuda out of memery,4块卡,其中3块一样,另外一块不一样。。。
一般用法:(4块卡完全一样)CUDA_VISIBLE_DEVIS=0 python train.py对于不一样算力的显卡来说,优先使用算力高的,除非使用CUDA_DEVICE_ORDER=PCI_BUS_ID,让其按照物理排序,而不是按照算力优先级排序CUDA_DEVICE_ORDER=PCI_BUS_ID CUDA_VISIBLE_DEVIS=0 python train.py就...原创 2020-03-19 16:40:52 · 386 阅读 · 0 评论 -
pytorch dataload 出错:: invalid argument 0: Sizes of tensors must match except in dimension 0
错误信息:”RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 299 and 252 in dimension 3 at /pytorch/aten/src/TH/generic/THTensor.cpp:714错误地方原代码:transforms.Resize(...原创 2020-02-28 22:05:08 · 741 阅读 · 0 评论