求助:(Pytorch)resnet加载预训练好的模型finetune时conv、bn层权重均不更新,为什么呢?

在resnet先进行了预训练后,根据预训练权重进行剪枝,再加载剪枝后模型及权重后,对模型进行finetune时,发现conv、bn层的权重均没有更新。尝试改变学习率后对结果没有影响。

p.requires_grad: True
net.stage_1[0].bn_a.track_running_stats: True
net.stage_1[0].bn_a.training: False

上面的情况,finetune与train时都一致,没有变化。

finetune代码与train代码其实没有什么区别,只不过一个前者加载了个模型而已,为什么后者可以正常更新权重,前者却不可以?还可能是什么原因呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求助:(pytorch)resnet加载预训练模型finetune的时候无法更新bn层、conv层

在预训练过resnet模型,并剪枝后,加载剪枝后的模型并加载权重重训练时,bn层、conv层的权重完全没用更新,这是为什么呢?也尝试修改了学习率,没有区别,依然不更新 net.stage_1[0].bn_a.track_running_stats: True net.stage_1[0].bn_a.training: False 这是其中一层bn层的track_running_stats与training的情况,与正常预训练时的情况完全没用区别。

Linux+pytorch下运行报错RuntimeError: PyTorch was compiled without NumPy support

我在尝试实现Github上开源的代码[Relation-Shape-CNN](https://github.com/Yochengliu/Relation-Shape-CNN ""),运行报错RuntimeError: PyTorch was compiled without NumPy support train_cls.py:36: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details. config = yaml.load(f) ************************** [workers]: 4 [num_points]: 1024 [num_classes]: 40 [batch_size]: 32 [base_lr]: 0.001 [lr_clip]: 1e-05 [lr_decay]: 0.7 [decay_step]: 21 [epochs]: 200 [weight_decay]: 0 [bn_momentum]: 0.9 [bnm_clip]: 0.01 [bn_decay]: 0.5 [evaluate]: 1 [val_freq_epoch]: 0.5 [print_freq_iter]: 20 [input_channels]: 0 [relation_prior]: 1 [checkpoint]: [save_path]: cls [data_root]: /media/lab/16DE307A392D4AED/zs ************************** /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pointnet2_modules.py:113: UserWarning: nn.init.kaiming_normal is now deprecated in favor of nn.init.kaiming_normal_. init(xyz_raising.weight) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pointnet2_modules.py:115: UserWarning: nn.init.constant is now deprecated in favor of nn.init.constant_. nn.init.constant(xyz_raising.bias, 0) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pointnet2_modules.py:122: UserWarning: nn.init.kaiming_normal is now deprecated in favor of nn.init.kaiming_normal_. init(mapping_func1.weight) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pointnet2_modules.py:123: UserWarning: nn.init.kaiming_normal is now deprecated in favor of nn.init.kaiming_normal_. init(mapping_func2.weight) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pointnet2_modules.py:125: UserWarning: nn.init.constant is now deprecated in favor of nn.init.constant_. nn.init.constant(mapping_func1.bias, 0) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pointnet2_modules.py:126: UserWarning: nn.init.constant is now deprecated in favor of nn.init.constant_. nn.init.constant(mapping_func2.bias, 0) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pointnet2_modules.py:131: UserWarning: nn.init.kaiming_normal is now deprecated in favor of nn.init.kaiming_normal_. init(cr_mapping.weight) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pointnet2_modules.py:132: UserWarning: nn.init.constant is now deprecated in favor of nn.init.constant_. nn.init.constant(cr_mapping.bias, 0) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pytorch_utils/pytorch_utils.py:153: UserWarning: nn.init.kaiming_normal is now deprecated in favor of nn.init.kaiming_normal_. init(self.conv_avg.weight) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pytorch_utils/pytorch_utils.py:155: UserWarning: nn.init.constant is now deprecated in favor of nn.init.constant_. nn.init.constant(self.conv_avg.bias, 0) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pytorch_utils/pytorch_utils.py:201: UserWarning: nn.init.constant is now deprecated in favor of nn.init.constant_. nn.init.constant(self[0].weight, 1.0) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pytorch_utils/pytorch_utils.py:202: UserWarning: nn.init.constant is now deprecated in favor of nn.init.constant_. nn.init.constant(self[0].bias, 0) /media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/models/../utils/pytorch_utils/pytorch_utils.py:400: UserWarning: nn.init.constant is now deprecated in favor of nn.init.constant_. nn.init.constant(fc.bias, 0) Traceback (most recent call last): File "train_cls.py", line 167, in <module> main() File "train_cls.py", line 91, in main train(train_dataloader, test_dataloader, model, criterion, optimizer, lr_scheduler, bnm_scheduler, args, num_batch) File "train_cls.py", line 101, in train for i, data in enumerate(train_dataloader, 0): File "/home/lab/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 336, in __next__ return self._process_next_batch(batch) File "/home/lab/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 357, in _process_next_batch raise batch.exc_type(batch.exc_msg) RuntimeError: Traceback (most recent call last): File "/home/lab/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 106, in _worker_loop samples = collate_fn([dataset[i] for i in batch_indices]) File "/home/lab/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 106, in <listcomp> samples = collate_fn([dataset[i] for i in batch_indices]) File "/media/lab/16DE307A392D4AED/zs/Relation-Shape-CNN/data/ModelNet40Loader.py", line 55, in __getitem__ label = torch.from_numpy(self.labels[idx]).type(torch.LongTensor) RuntimeError: PyTorch was compiled without NumPy support 请大神解答!!!

请问,如何优化pytorch的模型预测速度

Namespace(backbone='resnet', batchSize=4, epoch_size=3, gpu_id='0', lr=1e-07, nAveGrad=1, nEpochs=100, nTestInterval=1, nThreads=1, phaseprediction='prediction', phasetest='test', phasetrain='train', resume_epoch=0, snapshot=3, testBatch=1, useTest=True, wd=0.0005) ------------ Options ------------- backbone: resnet batchSize: 4 epoch_size: 3 gpu_id: 0 gpu_ids: [0] lr: 1e-07 nAveGrad: 1 nEpochs: 100 nTestInterval: 1 nThreads: 1 phaseprediction: prediction phasetest: test phasetrain: train resume_epoch: 0 snapshot: 3 testBatch: 1 useTest: True wd: 0.0005 -------------- End ---------------- Constructing DeepLabv3+ model... Number of classes: 2 Output stride: 16 Number of Input Channels: 3 这是相关的参数设置,gpu:为2080ti,cuda:10.0 预测单张图片(1024*768)的速度很慢,要7-10s,有什么方法可以缩短时间到1-2s

pytorch加载model发现key的值有差异,能不能修改

用pytorch加载别人训练的模型时候, RuntimeError: Error(s) in loading state_dict for PSMNet: Missing key(s) in state_dict: "feature_extraction.firstconv.0.0.weight", "feature_extraction.firstconv.0.1.weight",。。。。。 Unexpected key(s) in state_dict: "module.feature_extraction.firstconv.0.0.weight", "module.feature_extraction.firstconv.0.1.weight", ![图片说明](https://img-ask.csdn.net/upload/201904/12/1555047581_366964.jpg) 发现每个在模型里的参数都多个了module. 保存的格式是 ``` torch.save({ 'epoch': epoch, 'state_dict': model.state_dict(), 'train_loss': total_train_loss / len(TrainImgLoader), }, savefilename) ``` 读取的代码是 ``` state_dict = torch.load(basic.loadmodel) model.load_state_dict(state_dict['state_dict']) ``` 请问能不能做到将模型的key值从 module.feature_extraction.firstconv.0.1.weight 修改到 feature_extraction.firstconv.0.1.weight

pytorch 深度学习 增量训练

抱歉,csdn最近掉进钱眼里面去了,C币用完了,无法悬赏了。 问题:深度学习分类问题,我现已经对500个类别,10万张的图片进行了第一次训练训练。 现在有了一批新的数据,50个类别,10000张图片(每隔几天或每周都会在数据中添加新类)。由于训练时间的原因,我希望避免使用完整的10万+ 10000张图像进行训练,独的使用新增的50个类别进行增量训练,且不会忘记第一次训练的数据。 希望可以给我一些思路或者想法什么的。

pytorch自定义初始化权重后模型loss一直在2点几

``` class Net(nn.Module): def __init__(self): super(Net,self).__init__() self.conv1 = nn.Conv2d(3,64,3,padding=1,bias=False) self.conv2 = nn.Conv2d(64,64,3,padding=1,bias=False) self.pool1 = nn.MaxPool2d(2, 2) self.bn1 = nn.BatchNorm2d(64) self.relu1 = nn.ReLU() self.conv3 = nn.Conv2d(64,128,3,padding=1,bias=False) self.conv4 = nn.Conv2d(128, 128, 3,padding=1,bias=False) self.pool2 = nn.MaxPool2d(2, 2, padding=1) self.bn2 = nn.BatchNorm2d(128) self.relu2 = nn.ReLU() self.conv5 = nn.Conv2d(128,128, 3,padding=1,bias=False) self.conv6 = nn.Conv2d(128, 128, 3,padding=1,bias=False) self.conv7 = nn.Conv2d(128, 128, 1,padding=1,bias=False) self.pool3 = nn.MaxPool2d(2, 2, padding=1) self.bn3 = nn.BatchNorm2d(128) self.relu3 = nn.ReLU() self.conv8 = nn.Conv2d(128, 256, 3,padding=1,bias=False) self.conv9 = nn.Conv2d(256, 256, 3, padding=1,bias=False) self.conv10 = nn.Conv2d(256, 256, 1, padding=1,bias=False) self.pool4 = nn.MaxPool2d(2, 2, padding=1) self.bn4 = nn.BatchNorm2d(256) self.relu4 = nn.ReLU() self.conv11 = nn.Conv2d(256, 512, 3, padding=1,bias=False) self.conv12 = nn.Conv2d(512, 512, 3, padding=1,bias=False) self.conv13 = nn.Conv2d(512, 512, 1, padding=1,bias=False) self.pool5 = nn.MaxPool2d(2, 2, padding=1) self.bn5 = nn.BatchNorm2d(512) self.relu5 = nn.ReLU() self.fc14 = nn.Linear(512*4*4,1024) self.drop1 = nn.Dropout2d() self.fc15 = nn.Linear(1024,1024) self.drop2 = nn.Dropout2d() self.fc16 = nn.Linear(1024,10) def forward(self,x): x = self.conv1(x) x = self.conv2(x) x = self.pool1(x) x = self.bn1(x) x = self.relu1(x) x = self.conv3(x) x = self.conv4(x) x = self.pool2(x) x = self.bn2(x) x = self.relu2(x) x = self.conv5(x) x = self.conv6(x) x = self.conv7(x) x = self.pool3(x) x = self.bn3(x) x = self.relu3(x) x = self.conv8(x) x = self.conv9(x) x = self.conv10(x) x = self.pool4(x) x = self.bn4(x) x = self.relu4(x) x = self.conv11(x) x = self.conv12(x) x = self.conv13(x) x = self.pool5(x) x = self.bn5(x) x = self.relu5(x) # print(" x shape ",x.size()) x = x.view(-1,512*4*4) x = F.relu(self.fc14(x)) x = self.drop1(x) x = F.relu(self.fc15(x)) x = self.drop2(x) x = self.fc16(x) return x model = Net() #model = torch.nn.DataParallel(model) if t.cuda.is_available(): model.cuda() print(model) # torchvision输出的是PILImage,值的范围是[0, 1]. # 我们将其转化为tensor数据,并归一化为[-1, 1]。 transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)), ]) # 训练集,将相对目录./data下的cifar-10-batches-py文件夹中的全部数据(50000张图片作为训练数据)加载到内存中,若download为True时,会自动从网上下载数据并解压 trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=False, transform=transform) # 将训练集的50000张图片划分成12500份,每份4张图,用于mini-batch输入。shffule=True在表示不同批次的数据遍历时,打乱顺序。num_workers=2表示使用两个子进程来加载数据 trainloader = torch.utils.data.DataLoader(trainset, batch_size=100, shuffle=False, num_workers=1) #测试集,将相对目录./data下的cifar-10-batches-py文件夹中的全部数据(10000张图片作为测试数据)加载到内存中,若download为True时,会自动从网上下载数据并解压 testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=False, transform=transform) # 将测试集的10000张图片划分成2500份,每份4张图,用于mini-batch输入。 testloader = torch.utils.data.DataLoader(testset, batch_size=50, shuffle=False, num_workers=1) criterion = nn.CrossEntropyLoss()#叉熵损失函数 optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)#使用SGD(随机梯度下降)优化,学习率为0.001,动量为0.9 for epoch in range(1): # 遍历数据集10次 running_loss = 0.0 # enumerate(sequence, [start=0]),i序号,data是数据 for i, data in enumerate(trainloader, 0): #for i in range(1000): # get the inputs #data is list inputs, labels = data # data的结构是:[4x3x32x32的张量,长度4的张量] # wrap them in Variable inputs = Variable(inputs) labels=Variable(labels)# 把input数据从tensor转为variable if t.cuda.is_available(): inputs=inputs.cuda() labels=labels.cuda() #inputs,labels= inputs.type(torch.FloatTensor),labels.type(torch.FloatTensor) # zero the parameter gradients optimizer.zero_grad() # 将参数的grad值初始化为0 # forward + backward + optimize outputs = model(inputs) loss = criterion(outputs, labels) # 将output和labels使用叉熵计算损失 loss.backward() # 反向传播 optimizer.step() # 用SGD更新参数 # 每2000批数据打印一次平均loss值 running_loss += loss.item() # loss本身为Variable类型,所以要使用data获取其Tensor,因为其为标量,所以取0 或使用loss.item() if i % 500 == 499: # 每2000批打印一次 print('[%d, %5d] loss: %.3f' % (epoch + 1, i + 1, running_loss / 500)) running_loss = 0.0 print('Finished Training') start = time.clock()#.time correct = 0 total = 0 for data in testloader: images, labels = data images=images.cuda() labels=labels.cuda() outputs = model(Variable(images)) print(outputs.shape) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum() print('Accuracy of the network on the 10000 test images: %d %%' % ( 100 * correct / total)) end = time.clock()#.time print("Running time: %s Seconds" % (end-start)) weight0=np.random.random((64,3,3,3)) weight0=nn.Parameter(torch.FloatTensor(weight0).cuda(),requires_grad=True) #weight1=np.random.random((64,64,3,3),dtype=np.float32) weight1=np.random.random((64,64,3,3)) weight1=nn.Parameter(torch.FloatTensor(weight1).cuda(),requires_grad=True) weight2=np.random.random((128,64,3,3)) weight2=nn.Parameter(torch.FloatTensor(weight2).cuda(),requires_grad=True) weight3=np.random.random((128,128,3,3)) weight3=nn.Parameter(torch.FloatTensor(weight3).cuda(),requires_grad=True) weight4=np.random.random((128,128,3,3)) weight4=nn.Parameter(torch.FloatTensor(weight4).cuda(),requires_grad=True) weight5=np.random.random((128,128,3,3)) weight5=nn.Parameter(torch.FloatTensor(weight5).cuda(),requires_grad=True) weight6=np.random.random((128,128,1,1)) weight6=nn.Parameter(torch.FloatTensor(weight6).cuda(),requires_grad=True) weight7=np.random.random((256,128,3,3)) weight7=nn.Parameter(torch.FloatTensor(weight7).cuda(),requires_grad=True) weight8=np.random.random((256,256,3,3)) weight8=nn.Parameter(torch.FloatTensor(weight8).cuda(),requires_grad=True) weight9=np.random.random((256,256,1,1)) weight9=nn.Parameter(torch.FloatTensor(weight9).cuda(),requires_grad=True) weight10=np.random.random((512,256,3,3)) weight10=nn.Parameter(torch.FloatTensor(weight10).cuda(),requires_grad=True) weight11=np.random.random((512,512,3,3)) weight11=nn.Parameter(torch.FloatTensor(weight11).cuda(),requires_grad=True) weight12=np.random.random((512,512,1,1)) weight12=nn.Parameter(torch.FloatTensor(weight12).cuda(),requires_grad=True) new_layer_id=0 for m1 in model.modules(): if isinstance(m1, nn.Conv2d): if (new_layer_id==0): m1.weight = weight0 elif(new_layer_id==1): m1.weight= weight1 elif(new_layer_id==2): m1.weight = weight2 elif(new_layer_id==3): m1.weight = weight3 elif(new_layer_id==4): m1.weight = weight4 elif(new_layer_id==5): m1.weight = weight5 elif(new_layer_id==6): m1.weight = weight6 elif(new_layer_id==7): m1.weight = weight7 elif(new_layer_id==8): m1.weight = weight8 elif(new_layer_id==9): m1.weight = weight9 elif(new_layer_id==10): m1.weight = weight10 elif(new_layer_id==11): m1.weight = weight11 elif(new_layer_id==12): m1.weight = weight12 new_layer_id=new_layer_id+1 elif isinstance(m1, nn.BatchNorm2d): m1.weight = m1.weight m1.bias = m1.bias elif isinstance(m1, nn.Linear): m1.weight = m1.weight m1.bias = m1.bias #torchvision输出的是PILImage,值的范围是[0, 1]. # 我们将其转化为tensor数据,并归一化为[-1, 1]。 transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)), ]) # 训练集,将相对目录./data下的cifar-10-batches-py文件夹中的全部数据(50000张图片作为训练数据)加载到内存中,若download为True时,会自动从网上下载数据并解压 trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=False, transform=transform) # 将训练集的50000张图片划分成12500份,每份4张图,用于mini-batch输入。shffule=True在表示不同批次的数据遍历时,打乱顺序。num_workers=2表示使用两个子进程来加载数据 trainloader = torch.utils.data.DataLoader(trainset, batch_size=100, shuffle=False, num_workers=1) #测试集,将相对目录./data下的cifar-10-batches-py文件夹中的全部数据(10000张图片作为测试数据)加载到内存中,若download为True时,会自动从网上下载数据并解压 testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=False, transform=transform) # 将测试集的10000张图片划分成2500份,每份4张图,用于mini-batch输入。 testloader = torch.utils.data.DataLoader(testset, batch_size=50, shuffle=False, num_workers=1) criterion1 = nn.CrossEntropyLoss()#叉熵损失函数 optimizer1 = optim.Adam(model.parameters(), lr=0.001)#使用SGD(随机梯度下降)优化,学习率为0.001,动量为0.9 #momentum=0.9 start = time.clock()#.time correct = 0 total = 0 for data in testloader: images, labels = data images=images.cuda() labels=labels.cuda() outputs = model(Variable(images)) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum() print('Accuracy of the Newmodel1 on the 10000 test images: %d %%' % ( 100 * correct / total)) end = time.clock()#.time print("Running time: %s Seconds" % (end-start)) for epoch in range(20): running_loss = 0.0 for i, data in enumerate(trainloader, 0): #for i in range(1000): inputs, labels = data inputs = Variable(inputs) #print(inputs.shape) labels=Variable(labels) inputs=inputs.cuda() labels=labels.cuda() optimizer1.zero_grad() outputs = model(inputs) loss = criterion1(outputs, labels) loss.backward() optimizer1.step() running_loss += loss.item() if i % 500 == 499: print('[%d, %5d] loss: %.3f' % (epoch + 1, i + 1, running_loss / 500)) ```

pytorch训练LSTM模型的代码疑问

原博文链接地址:https://blog.csdn.net/Sebastien23/article/details/80574918 其中有不少代码完全看不太懂,想来这里求教下各位大神~~ ``` class Sequence(nn.Module): def __init__(self): super(Sequence,self).__init__() self.lstm1 = nn.LSTMCell(1,51) self.lstm2 = nn.LSTMCell(51,51) self.linear = nn.Linear(51,1) #上面三行代码是设置网络结构吧?为什么用的是LSTMCell,而不是LSTM?? def forward(self,inputs,future= 0): #这里的前向传播名称必须是forward,而不能随意更改??因为后面的模型调用过程中,并没有看到该方法的实现 outputs = [] h_t = torch.zeros(inputs.size(0),51) c_t = torch.zeros(inputs.size(0),51) h_t2 = torch.zeros(inputs.size(0),51) c_t2 = torch.zeros(inputs.size(0),51) #下面的代码中,LSTM的原理是要求三个输入:前一层的细胞状态、隐藏层状态和当前层的数据输入。这里却只有2个输入?? for i,input_t in enumerate(inputs.chunk(inputs.size(1),dim =1)): h_t,c_t = self.lstm1(input_t,(h_t,c_t)) h_t2,c_t2 = self.lstm2(h_t,(h_t2,c_t2)) output = self.linear(h_t2) outputs +=[output] for i in range(future): h_t,c_t = self.lstm1(output,(h_t,c_t)) h_t2,c_t2 = self.lstm2(h_t,(h_t2,c_t2)) output = self.linear(h_t2) outputs +=[output] #下面将所有的输出在第一维上相拼接,并剪除维度为2的数据??目的是什么? outputs = torch.stack(outputs,1).squeeze(2) return outputs ```

PyTorch-YOLOv3 训练报错 如何解决?

报错信息 C:/w/1/s/windows/pytorch/aten/src\ATen/native/IndexingUtils.h:20: UserWarning: indexing with dtype torch.uint8 is now deprecated, please use a dtype torch.bool instead. Traceback (most recent call last): File "train.py", line 141, in <module> logger.list_of_scalars_summary(tensorboard_log, batches_done) File "F:\StuPy\PyTorch-YOLOv3\utils\logger.py", line 17, in list_of_scalars_summary summary = tf.Summary(value=[tf.Summary.Value(tag=tag, simple_value=value) for tag, value in tag_value_pairs]) AttributeError: module 'tensorflow' has no attribute 'Summary' 已经安装插件版本 tensorboard 2.0.0 tensorflow 2.0.0 tensorflow-estimator 2.0.1 termcolor 1.1.0 terminaltables 3.1.0 torch 1.3.1 torchvision 0.4.1 tqdm 4.41.1 urllib3 1.25.7 Werkzeug 0.16.0 wheel 0.33.6 wrapt 1.11.2

求助!pytorch使用dataset和dataloader加载图片出现问题

自己编写了dataset类 在__getitem__(self, idx)里打开图片。 方法1:img_dataset = PlateDataset(......) data_loader = DataLoader(img_dataset,num_work=4.....) 方法2:img_dataset = PlateDataset(......) img_list = [img for img in img_dataset] data_loader = DataLoader(img_list,num_work=4.....) 两种方法的训练效果差别较大,请问这是什么原因?已经知道方法2是将所有的图片都加载到了内存里,方法1没有。

pytorch编写ResNet,在kernel权值初始化的时候,将小波赋值给初值,如何实现单个核的值符合小波分布呢??

我要处理的是一维信号,单个核的维度是1X1X5,假设有5个核,所有5个核的值就是权值,我现在会的是将这五个核的值全取出进行整体赋值,但这样赋值的话,是这5个核整体数值符合小波分布,而不是单个核的值符合小波分布,如何实现单个核的值符合小波分布呢?

找DAN,DDC,JAN,RTN,simNet,ResNet-50等模型的pytorch框架代码。能找几个是几个。

找DAN,DDC,JAN,RTN,simNet,ResNet-50等模型的pytorch框架代码。最少找2个以上,能找全最好。下面是模型对应论文。 DAN:(Learning Transferable Features with Deep Adaptation Networks) DDC:(Deep domain confusion: Maximizing for domain invariance) RTN:(Unsupervised domain adaptation with residualtransfer networks) JAN:(Deep transfer learning with joint adaptationnetworks) ResNet-50:(Deep residual learning for image recognition)

环境是Windows10,pytorch下的一维时间信号的数据加载、预处理怎么弄?

1、问题:编一个ResNet,实现一维时间信号的分类,实验数据是测的压力信号,每一个数据是一段时间序列+数字标签,怎么加载和预处理自己的数据呢? 2、查的资料都是图像处理的数据加载,找不到一维时间信号的加载和预处理

安装pytorch后使用conda出现报错不知怎么解决

安装了pytorch在一个新建环境后conda不知怎么就崩了 ![图片说明](https://img-ask.csdn.net/upload/202001/18/1579314770_106086.png) 一直是这个样子输入conda命令就这样 打开anaconda prompt也报这个错

训练facenet 测试训练模型有问题?

拿自己的模型和之前的模型都不可以 训练facenet 测试训练模型出现 FileNotFoundError: [Errno 2] No such file or directory: 'data/pairs.txt'

pytorch图像数据集怎么进行交叉验证

pytorch训练过程中,每次迭代训练时怎么将图像数据集按比例随机分成训练集和测试集,进行训练和验证。类似与sklearn里面的交叉验证

anaconda环境问题:CondaEnvironmentNotFoundError

问题如图所示,conda环境可以进入,但是无法Install包,错误提示为CondaEnvironmentNotFoundError,conda环境路径混乱,大佬们有没有遇到类似问题,怎么解决呢? ![图片说明](https://img-ask.csdn.net/upload/201805/25/1527218938_924770.png)

求助:CUDA的RuntimeError:cuda runtime error (30)

``` from torchvision import models use_gpu = torch.cuda.is_available() model_ft = models.resnet18(pretrained = True) if use_gpu: model_ft = model_ft.cuda() ``` 运行后报错: ``` RuntimeError Traceback (most recent call last) <ipython-input-6-87942ec8aa13> in <module>() 11 model_ft.fc = nn.Linear(num_ftrs , 5)#############################2 12 if use_gpu: ---> 13 model_ft = model_ft.cuda() 14 #criterion = nn.MultiMarginLoss() 15 criterion = nn.CrossEntropyLoss() ~\Anaconda3\lib\site-packages\torch\nn\modules\module.py in cuda(self, device) 258 Module: self 259 """ --> 260 return self._apply(lambda t: t.cuda(device)) 261 262 def cpu(self): ~\Anaconda3\lib\site-packages\torch\nn\modules\module.py in _apply(self, fn) 185 def _apply(self, fn): 186 for module in self.children(): --> 187 module._apply(fn) 188 189 for param in self._parameters.values(): ~\Anaconda3\lib\site-packages\torch\nn\modules\module.py in _apply(self, fn) 191 # Tensors stored in modules are graph leaves, and we don't 192 # want to create copy nodes, so we have to unpack the data. --> 193 param.data = fn(param.data) 194 if param._grad is not None: 195 param._grad.data = fn(param._grad.data) ~\Anaconda3\lib\site-packages\torch\nn\modules\module.py in <lambda>(t) 258 Module: self 259 """ --> 260 return self._apply(lambda t: t.cuda(device)) 261 262 def cpu(self): ~\Anaconda3\lib\site-packages\torch\cuda\__init__.py in _lazy_init() 160 "Cannot re-initialize CUDA in forked subprocess. " + msg) 161 _check_driver() --> 162 torch._C._cuda_init() 163 _cudart = _load_cudart() 164 _cudart.cudaGetErrorName.restype = ctypes.c_char_p RuntimeError: cuda runtime error (30) : unknown error at ..\aten\src\THC\THCGeneral.cpp:87 ``` Win10+Anaconda5.0.1+python3.6.3 Cuda driver version 10.1 Cuda Toolkit 10.1 pytorch 1.0.1 显卡GeForce GTX 1050 Ti nvidia驱动版本430.39 求助啊!!!

pytorch RuntimeError: already started

在visual studio code 中调试pytorch代码(debug)跳出错误 RuntimeError: already started 跑的是pytorch官方[例子](https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html "") 当单步执行到 ``` inputs, classes = next(iter(dataloaders['train'])) ``` 时候出错,错误提示如下 ``` E00012.128: Exception escaped from start_client Traceback (most recent call last): File "/home/zeng/.vscode/extensions/ms-python.python-2019.3.6215/pythonFiles/lib/python/ptvsd/log.py", line 110, in g return f(*args, **kwargs) File "/home/zeng/.vscode/extensions/ms-python.python-2019.3.6215/pythonFiles/lib/python/ptvsd/pydevd_hooks.py", line 74, in start_client sock, start_session = daemon.start_client((host, port)) File "/home/zeng/.vscode/extensions/ms-python.python-2019.3.6215/pythonFiles/lib/python/ptvsd/daemon.py", line 214, in start_client with self.started(): File "/home/zeng/anaconda3/lib/python3.6/contextlib.py", line 81, in __enter__ return next(self.gen) File "/home/zeng/.vscode/extensions/ms-python.python-2019.3.6215/pythonFiles/lib/python/ptvsd/daemon.py", line 110, in started self.start() File "/home/zeng/.vscode/extensions/ms-python.python-2019.3.6215/pythonFiles/lib/python/ptvsd/daemon.py", line 145, in start raise RuntimeError('already started') RuntimeError: already started ``` 请教这是什么情况呀?

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:csdn590)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

Windows版YOLOv4目标检测实战:训练自己的数据集

课程演示环境:Windows10; cuda 10.2; cudnn7.6.5; Python3.7; VisualStudio2019; OpenCV3.4 需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:训练自己的数据集》 课程链接:https://edu.csdn.net/course/detail/28745 YOLOv4来了!速度和精度双提升! 与 YOLOv3 相比,新版本的 AP (精度)和 FPS (每秒帧率)分别提高了 10% 和 12%。 YOLO系列是基于深度学习的端到端实时目标检测方法。本课程将手把手地教大家使用labelImg标注和使用YOLOv4训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv4使用AlexyAB/darknet,在Windows系统上做项目演示。包括:安装软件环境、安装YOLOv4、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算)和先验框聚类分析。还将介绍改善YOLOv4目标检测性能的技巧。 除本课程《Windows版YOLOv4目标检测实战:训练自己的数据集》外,本人将推出有关YOLOv4目标检测的系列课程。请持续关注该系列的其它视频课程,包括: 《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》 《Windows版YOLOv4目标检测实战:中国交通标志识别》 《Windows版YOLOv4目标检测:原理与源码解析》

lena全身原图(非256*256版本,而是全身原图)

lena全身原图(非256*256版本,而是全身原图) lena原图很有意思,我们通常所用的256*256图片是在lena原图上截取了头部部分的256*256正方形得到的. 原图是花花公子杂志上的一个

快速入门Android开发 视频 教程 android studio

这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

Java调用微信支付

Java 使用微信支付 一. 准备工作 1.

汽车租赁管理系统需求分析规格说明书

汽车租赁管理系统需求分析规格说明书,这只是一个模板,如果有不会的可以借鉴一下,还是蛮详细的。。。。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

程序员的算法通关课:知己知彼(第一季)

【超实用课程内容】 程序员对于算法一直又爱又恨!特别是在求职面试时,算法类问题绝对是不可逃避的提问点!本门课程作为算法面试系列的第一季,会从“知己知彼”的角度,聊聊关于算法面试的那些事~ 【哪些人适合学习这门课程?】 求职中的开发者,对于面试算法阶段缺少经验 想了解实际工作中算法相关知识 在职程序员,算法基础薄弱,急需充电 【超人气讲师】 孙秀洋&nbsp;| 服务器端工程师 硕士毕业于哈工大计算机科学与技术专业,ACM亚洲区赛铜奖获得者,先后在腾讯和百度从事一线技术研发,对算法和后端技术有深刻见解。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27272 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程无限观看时长,但是大家可以抓紧时间学习后一起讨论哦~

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

Python入门视频精讲

Python入门视频培训课程以通俗易懂的方式讲解Python核心技术,Python基础,Python入门。适合初学者的教程,让你少走弯路! 课程内容包括:1.Python简介和安装 、2.第一个Python程序、PyCharm的使用 、3.Python基础、4.函数、5.高级特性、6.面向对象、7.模块、8.异常处理和IO操作、9.访问数据库MySQL。教学全程采用笔记+代码案例的形式讲解,通俗易懂!!!

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Java62数据提取代码

利用苹果手机微信下面的wx.data文件提取出62数据,通过62可以实现不同设备直接登陆,可以通过文件流的方式用脚本上传到服务器进行解析

Python代码实现飞机大战

文章目录经典飞机大战一.游戏设定二.我方飞机三.敌方飞机四.发射子弹五.发放补给包六.主模块 经典飞机大战 源代码以及素材资料(图片,音频)可从下面的github中下载: 飞机大战源代码以及素材资料github项目地址链接 ————————————————————————————————————————————————————————— 不知道大家有没有打过飞机,喜不喜欢打飞机。当我第一次接触这个东西的时候,我的内心是被震撼到的。第一次接触打飞机的时候作者本人是身心愉悦的,因为周边的朋友都在打飞机, 每

2018年全国大学生计算机技能应用大赛决赛 大题

2018年全国大学生计算机技能应用大赛决赛大题,程序填空和程序设计(侵删)

Lena图像处理测试专业用图,高清完整全身原图

Lena图像处理测试专业用图,高清完整全身原图,该图片很好的包含了平坦区域、阴影和纹理等细节,这些都有益于测试各种不同的图像处理算法。它是一幅很好的测试照片!其次,由于这是一个非常有魅力女人的照片。

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

verilog实现地铁系统售票

使用 verilog 实现地铁售票

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

微信小程序 实例汇总 完整项目源代码

微信小程序 实例汇总 完整项目源代码

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯。 本系统控制六层电梯, 采用集选控制方式。 为了完成设定的控制任务, 主要根据电梯输入/输出点数确定PLC 的机型。 根据电梯控制的要求,

Rabit兔子点云模型.zip

加载点云模型导入PCL点云库,有三种格式的点云兔子,压缩包总共有ply/pcd/xyz三种格式,可以结合我的博客内容练习怎么加载显示

相关热词 c#设计思想 c#正则表达式 转换 c#form复制 c#写web c# 柱形图 c# wcf 服务库 c#应用程序管理器 c#数组如何赋值给数组 c#序列化应用目的博客园 c# 设置当前标注样式
立即提问