代码
皮卡丘吃桃子
研究行人重识别的在读研究生
展开
-
pytorch:AttributeError: type object torch.distributed.Reduce0p has no attribute BAND
解决方法:AttributeError: type object torch.distributed.Reduce0p has no attribute BAND1.如果已经安装过 apex,需要先卸载它:pip uninstall apexrm -rf apex2.重新安装一个新的 apex,即 apex_no_distributed :git clone https://github.com/ptrblck/apex.gitcd apexgit checkout apex_no_dist原创 2020-11-30 14:11:46 · 838 阅读 · 0 评论 -
python:找到每个数下一个更大的数
给定一个环形数组(最后一个数的下一个数是数组的第一个元素),为每个元素打印下一个更大的元素。数字x的下一个更大的数是遍历数组的过程中出现的第一个更大的数字,这意味着可以循环搜索以查找下一个更大的数字,如果不存在则输出-1class Solution: def nextGreaterElements(self,nums): if not nums: return [] stack,res = [],[-1 for i in range(len(原创 2020-11-25 19:29:16 · 726 阅读 · 0 评论 -
python:最接近的k个数
题目:最接近的k个数:给定一个目标数target,一个非负整数k,一个按照升序排列的数组A,在A中找出与target最接近的k个整数,返回这k个数并按照与target的接近程度从小到大排序,如果接近程度相当,那么值小的排在前面class Solution: def kClosestNumbers(self,A,target,k): #找到A[left]<target,A[right]>=target #最接近target的两个数,肯定是相邻的原创 2020-11-25 14:31:43 · 490 阅读 · 0 评论 -
The “freeze_support()“ line can be omitted if the program is not going to be frozen to prod解决方法
如下所示报错完整信息RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase. This probably means that you are not using fork to start your child processes and you have forgotten原创 2020-11-24 21:56:09 · 1462 阅读 · 2 评论 -
python:罗马数字与数字互相转换
1.罗马数字转换为数字class Solution: def romanToInt(self,s): ROMAN = { 'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000 } if s == "":原创 2020-11-10 16:42:28 · 2896 阅读 · 0 评论 -
pytorch报错RuntimeError: Legacy autograd function with non-static forward method is deprecated.解决方法
报错完整信息:RuntimeError: Legacy autograd function with non-static forward method is deprecated. Please use new-style autograd function with static forward method.意思就是由于你当前的pytorch版本过高,而原代码的版本较低。如果pytorch版本高于1.3会出现该问题。当前版本要求forward过程是静态的,所以需要将原代码进行修改。网上的一些做法是原创 2020-10-27 14:30:03 · 3734 阅读 · 5 评论 -
ValueError: Expected more than 1 value per channel when training
输入批次只有一个数据点的原因,至少需要如下形式的数据:input = Variable(torch.FloatTensor(2, 3, 256, 128)),也可以将DataLoader中drop_last设置为True,把不够一个批次的数据丢弃。原创 2020-10-15 16:34:44 · 591 阅读 · 1 评论 -
from .resnet import * 报错:No module named ‘__main__.resnet‘;‘__main__‘is not a package
报错原因我在该文件中写了一个测试代码,测试该网络的各个结构是否有效,if name == ‘main’:,所以在前面导包时就不可以再使用缩略的形式,代码会默认为省略的是__main__.resnet,所以修改方式很简单就是直接改写为:from resnet import *...原创 2020-10-15 15:29:17 · 1408 阅读 · 0 评论 -
python算法指南:完美平方错误修改
#完美平方#给定一个正整数n,找到若干个完全平方数(例如:1,4,9,...),使得他们的平方和等于n,完全平方数的个数最少class Solution: def numSquares(self,n): while n % 4 == 0: n //= 4 if n % 8 == 7: return 4 for i in range(n+1): temp = i * i原创 2020-09-29 09:13:26 · 166 阅读 · 0 评论 -
python文本处理常用函数整理
python文本处理常用函数整理string,文本处理工具str类textwrap:格式化文本段落re:正则表达式difflib:比较序列string,文本处理工具str类textwrap:格式化文本段落re:正则表达式difflib:比较序列原创 2020-09-27 10:07:13 · 1493 阅读 · 0 评论 -
pytorch feat.renorm(2, 0, 1e-5).mul(1e5)解释
在学习pytorch,针对某个具体方向去读代码时,遇到了一些关于pytorch函数上面的问题,通过查阅相关资料得知关于feat.renorm(2, 0, 1e-5).mul(1e5)的作用,就相当于是对feat进行归一化的处理。其中前两个2,0是代表在第0维度对feat进行L2范数操作得到归一化结果。1e-5是代表maxnorm ,将大于1e-5的乘以1e5,使得最终归一化到0到1之间。简单例子如下所示:import torchfeat = torch.Tensor([[1,2,3],[4,5,6],原创 2020-09-23 20:36:22 · 958 阅读 · 0 评论 -
python:对二叉树进行镜像翻转完整程序,包括数组转二叉树,以及层序遍历输出二叉树
class TreeNode: def __init__(self): self.val = None self.left = None self.right = Nonedef invertTree(root): if not root: return None root.left,root.right=invertTree(root.right),invertTree(root.left) retu原创 2020-09-16 16:20:29 · 214 阅读 · 0 评论 -
python 对列表类进行+=操作的微妙差异
对列表类进行+=操作,如下代码所示:a = [1,2,3]b = ab += [4,5]b = b + [6,7]print(a)print(b)输出结果为:[1, 2, 3, 4, 5][1, 2, 3, 4, 5, 6, 7]这个例子就展现了b += foo与b = b + foo在列表语义方面的微妙差异。b += [4,5]的意思是用另外两个元素4,5扩展原始列表,b = b + [6,7]的意思是重新分配b到一个新的列表[1,2,3,4,5,6,7],所以a为[1, 2, 3,原创 2020-08-12 14:58:43 · 132 阅读 · 0 评论 -
python神经网络绘loss高级曲线图代码
c原创 2020-08-11 13:59:57 · 1601 阅读 · 0 评论 -
python读取各种格式文件方式
python读取各种格式文件方式原创 2020-07-30 16:16:48 · 1626 阅读 · 0 评论 -
ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks理解整理
ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks理解整理AbstractIntroductionProposed MethodRevisiting Channel Attention in SE BlockEfficient Channel Attention (ECA) ModuleAbstract近年来的一些研究,已有证明通道注意机制在改善深度卷积神经网络(CNNs)的性能方面有着很大的潜力,现有方原创 2020-07-30 13:26:24 · 3350 阅读 · 1 评论 -
python:图像与矩阵之间的转换
矩阵转换为灰度图像如下代码所示首先加载一幅图像,转换为矩阵后在转回为图像:import numpy as npimport Imagemg = Image.open(filename)mats = np.array(mg)mg2 = Image.fromarray(mats)但是以上这样的用法有一些需要注意的地方,将矩阵转换为图像的函数不会自动的对其像素值的大小进行变换,也就是说如果矩阵的值在0到1之间的话,那么最后这幅图像的像素值将会只有0和1,会导致这幅图像的所有像素变得非常的暗。所有可以原创 2020-07-24 16:01:04 · 10561 阅读 · 0 评论 -
Input type (torch.cuda.ByteTensor) and weight type (torch.cuda.FloatTensor) should be the same
只需要将对应的torch.tensor()改为torch.FloatTensor()就可以了,例如torch.FloatTensor([img])原创 2020-07-23 17:04:17 · 3457 阅读 · 0 评论 -
AttributeError: ‘numpy.ndarray‘ object has no attribute ‘cuda‘
这种类型的错误都是由于没有转换为tensor张量导致的,只需要注意使用cuda()前通过torch.tensor()转为tensor就可以了,例如这样:resnet(Variable(torch.tensor(img).cuda()))原创 2020-07-23 16:40:11 · 8890 阅读 · 0 评论 -
PyTorch:四种学习率选择策略
pytorch提供了一些调整学习率的技术,它们由torch.optim.lr_sheduler提供,下面就来一一简述一下四种动态选择学习率的技术。StepLR这个方法调度需要提供两个重要的参数。第一个参数是步长step,表示学习率需要经过多少个epoch来改变一次,第二个参数是gamma,表示学习率改变的多少。举个简单的例子对于学习率0.01来说,在步长10和gamma为0.1的情况下,学习率每十个epoch就以gamma的倍数变化,也就是说对于前10轮来说学习率变成0.001,接下来的10轮变为0.原创 2020-07-22 16:31:34 · 840 阅读 · 0 评论 -
pytorch创建任意optimizer的一些注意点
使用pytorch创建任意optimizer的一些重要步骤,首先如下所示:optimizer = optim.SGD(model.parameters(), lr = 0.01)创建了SGD优化器,把网络的所有学习参数作为第一个参数,另外一个参数是学习率,这决定了多大比例的变化调整可以作用于学习参数,这都是优化器的重要参数。第一个注意点在创建优化器对象后,需要在循环中调用zero_grad()方法,这是为了避免参数把上一次optimizer调用时创建的梯度累加到一起:for input, taget原创 2020-07-21 14:14:45 · 554 阅读 · 0 评论 -
pytorch构建深度学习算法网络的方式(简单)
pytorch中所有的网络都是实现为类,子类要调用nn.Module并实现__init__和forward方法。在__init__方法中初始化层,在forward方法中,把输入数据传给init方法中初始化的层,并返回最终的输出。非线性函数经常被forward函数直接调用,如下所示简单的实现:class FirstNet(nn.Module): def __init__(self,input_size,hidden_size,output_size): super(firstNet,原创 2020-07-20 16:21:20 · 324 阅读 · 0 评论 -
python编写习惯之列表推导学习
首先看一下以下代码,编写这样的代码是很痛苦的:evens = []for i in range(10): if i % 2 == 0: evens.append(i)print(evens)#[0,2,4,6,8]这样的代码在python中的运行速度其实是很慢的:解释器在每次循环中都需要判断序列中那一部分需要修改,需要用一个计数器来跟踪需要处理的元素,并且由于append()是一个列表方法,所以每次遍历时还需要额外执行一个查询函数。列表推导正是解决这个问题的正确方法:通原创 2020-07-19 21:10:47 · 159 阅读 · 0 评论 -
python编程练习:三种方法实现链表的逆序
#链表的存储特点:可以用任意一组存储单元来存储单链表中的数据元素,而且除了存储每个数据元素外,还必须存储#指示其直接后继元素的信息#实现链表的逆序#方法1:就地逆序#在遍历链表的时候,修改当前结点指针域的指向,让其指向它的前驱结点。需要用一个指针变量来保存前驱结点的地址,#此外为了在调整当前结点指针域的指向后还能找到后继结点还需要另外一个指针变量来保存后继结点的地址,在所有结点#都被保存好以后就可以直接完成指针的逆序,还需要注意链表首尾结点的特殊处理class LNode(object):原创 2020-07-11 14:16:19 · 406 阅读 · 0 评论 -
使用自定义RandErasing数据增强报错解决方法
RandErasing官方代码如下所示:class RandomErasing(object): """ Randomly selects a rectangle region in an image and erases its pixels. 'Random Erasing Data Augmentation' by Zhong et al. See https://arxiv.org/pdf/1708.04896.pdf Args:原创 2020-06-30 20:22:41 · 518 阅读 · 0 评论 -
使用AverageMeter类调用对象错误
使用AverageMeter()类调用对象错误 float() argument must be a string or a number, not ‘AverageMeter’在训练过程中使用自定义的AverageMeter类来管理一些变量的更新,如下代码所示为自定义的AverageMeter()class AverageMeter(object): def __init__(self): self.reset() def reset(self):原创 2020-06-22 12:31:27 · 1098 阅读 · 1 评论 -
使用pytorch训练模型时,不停的报警告信息sklearn\utils\deprecation.py:143:FutureWarning解决方法
使用pytorch训练模型时,不停的报警告信息D:\anaconda\envs\pytorch\lib\site-packages\sklearn\utils\deprecation.py:143: FutureWarning解决方法如下图所示的报警信息,总是不停的显示,十分的影响干扰我们观测训练的实时精度和结果!!!给出两种解决方案暴力解决直接忽视该警告信息,在训练的过程中禁止输出该警告信息,解决方法如下:首先在代码中加入以下代码片段import warningswarnings.filterw原创 2020-06-16 21:24:27 · 4566 阅读 · 0 评论 -
Person_reID_baseline_pytorch-master,初学习ReID,逐行读代码
Person_reID_baseline_pytorch-master,初学习ReID,逐行读代码如何插入一段漂亮的代码片如何插入一段漂亮的代码片# -*- coding: utf-8 -*-from __future__ import print_function, divisionimport argparseimport torchimport torch.nn as nnimport torch.optim as optimfrom torch.optim import lr_s原创 2020-06-02 21:10:24 · 2323 阅读 · 2 评论