自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (1)
  • 收藏
  • 关注

原创 正确理解协程

当执行这句” await say_after(1, 'hello')” 将会交出程序控制权,等待 say_after(1, 'hello')” 执行完,当然系统也有机会执行其他协程(看系统调度)。

2024-10-08 07:08:20 323

原创 python如何以在运行过程中获取管理员权限,而且正常显示。

上面代码实际运行了2次。python如何以在运行过程中获取管理员权限

2024-10-05 15:56:46 121

原创 熵与信息量简单理解。

明显,某个随机事件,每个事件发生的平均概率越来越低,熵就越来越大。a要把信息传递给b。例如可以传递 二进制数110中就可以让b了解这件事的信息。1.例如:假定a能看到一个随机试验,就是从0-7中任意选一个数。公式 -log2(P) P是这件事发生的概率。2.假定a能看到一个随机试验,就是从0-4中任意选一个数。第1种情况的熵为 3*1/8+3*1/8+...=3。第2种情况的熵为 2*1/4+2*1/4+...=2。传递的信息就是10,传递的信息长度就是2.上面计算熵,熵是信息的期望。

2024-02-12 13:14:45 573

原创 多进程的一个错误,奇怪,EOFError: Ran out of input

EOFError: Ran out of input

2024-02-07 20:17:32 295

原创 【四元数简述】

(0+1i+2j+3k)*(w+xi+yj+zk)结果就是旋转后的向量。向量(x,y,z)是旋转轴 a 是任意正数 theta是旋转角度。空间中向量(1,2,3)扩展为(0,1,2,3)变为四元数。计算(0,1,2,3)*(w,x,y,z)类似向量计算。上面就是一个四元数表示旋转。

2023-11-20 08:02:16 420

原创 module ‘cv2‘ has no attribute ‘aruco‘解决

opencv-contrib-python属于加强版,除了主模块,还包含一些增强模块及以下测试的新算法,验证成熟后,再加入主模块。pip install opencv-contrib-python #使用这个可以解决。凡是cv2的找不到基本都是这个问题。

2022-10-14 11:04:33 2016 2

原创 信息量 就是确定某件事发生需要的有效2进制位的多少。

我编码 000,001,010,011,100,101,110,111 (8个)分别表示摸到第一个球m1、摸到第二个m2...我发给你1个bit,1 ,完了,你只能知道{m5,m6,m7,m8}中的一种可能,信息量为1。3)如果我告诉你"摸出了球,可能是1到8”,实际上你没有得有效的信息。我发给你3个bit,010,你得到了确定的信息,信息量最大为3。1)我告诉你"摸出了7号球",实际上我告诉你了最大有效信息。我不发0个bit ,你完全没得到有效信息,信息量为0。...

2022-08-27 09:17:22 621

原创 linux Ubuntu创建软链接,类似win快捷方式,22.04设创建快捷键

最近使用ubuntu 想使用类似快捷方式,研究一下,总结以下一点。

2022-08-26 18:01:37 860

原创 SegNet,Unet,PspNet语义分割简介

SegNet结构与Unet一样,上采样方式不一样而已:语义分割算法

2022-08-26 16:35:31 370

原创 信息量特点:就是排除可能越多,信息量就越大

(近似),越是能预测小概率时间的信息价值越高,信息量就越大。你说明天是晴天,你排除了3种状态【阴、雨、雪】信息量为A。信息量:=ln(1/p) p为该事件发生的概率。例如:明天天气假定是:【晴、阴、雨、雪】4种状态。你说明天是坏天气,你排除了【晴】信息量为B。3.信息量越大,概率越小。1.信息量就是数据的长度。2.信息越多,发生概率越大。1.信息是排除不确定性的,排除可能越多,信息量就越大。2.信息量也可以理解为。

2022-08-24 21:03:23 2146

原创 numpy筛选指定的行或者列

pos=np.where(n[:,2]

2022-08-22 10:02:08 1907

原创 python import 使用相对目录

总结:import 使用相对目录后,该文件只能作为模块供导入,不能直接执行。import0.py将不能执行,执行就会报错。import0 #这样不会发生错误。可以导入文件 import0。

2022-08-15 08:17:02 337

原创 神经网络 自注意力机制 Q K V 理解 self attention

神经网络 注意力机制 Q K V 理解 注意力机制研究

2022-08-08 10:15:53 1618 3

原创 open cv error,这个错误查了好久,是安装问题

cv2.error: OpenCV(4.5.1) ../modules/highgui/src/window.cpp:651: error: (-2:Unspecified error) The function is not implementedpip install opencv-contrib-python #使用这个可以解决# opencv-contrib-python属于加强版,除了主模块,还包含一些增强模块及以下测试的新算法,验证成熟后,再加入主模块 ...

2022-05-27 12:06:04 632

原创 YOLOX图解收集

yolox特点:1. 无锚框设计2. 双头输出 一个头输出类别,一个头输出位置大小和IOU(概率)所有图片网络收集,有异议会删除

2022-03-18 08:11:24 352

原创 单目固定平面已知像素坐标求世界坐标方法

单目固定平面已知像素坐标求世界坐标方法

2022-03-15 13:57:10 3046

原创 【无标题】单目相机根据像素坐标求对应点的世界坐标

单目相机 根据像素坐标求对应点的世界坐标

2022-03-14 12:13:25 996 1

原创 Yolov5-v6.0模型详解

Yolov5-v6.0模型详解# YOLOv5 v6.0 backbonebackbone: # [from, number, module, args] [[-1, 1, Conv, [64[l1], 6[l2], 2[l3], 2[l4]]], # 0-P1/2 [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 [-1, 3[l5], C3, [128]], [-1, 1, Conv, [256, 3, 2]], # 3...

2022-02-01 11:12:16 17414 2

原创 卷积操作Conv2d详细解释以及案例

import torchx = torch.randn(2,1,3,2) (2张图片,通道数1单色,高3,宽2)conv = torch.nn.Conv2d(1,8,(2,3))输入通道数1,和上面x数据保持一致输出的通道 8,也就是核的个数,决定了输出数据的通道数,也可以理解为有8个核处理了图片输出8个矩阵。y=conv(x) #用卷积处理x返回yy的shape为(2,8,?,?) #还是2张,8通道,高,宽下面是源代码可以测试:#2d中...

2022-01-22 10:06:33 5088

原创 DQN Deep Q Network算法 详细图解,留言、收藏、转发足够多,我就发详细注释的案例代码

1、先建立模型Q_eval,随机初始化2、让图像二值化为状态State,作为模型输入,假定模型输出3个Q值(Q就是衡量该行为的价值,Q最大就采用这个行为Act)该图Act=‘下’3、状态State 在Act行为下,产生新状态S_,这时你根据游戏形势给他一个奖励Reward简化为(State,Act,Reward,State_)即(s,a,r,s_)4、保存(s,a,r,s_)1、再建立一个模型target_model,与模型eval一样,这个模型参数更新...

2021-12-11 22:54:07 859 2

原创 f = open(myfile, ‘w+‘)理解

f = open(myfile, 'w+')会先删除myfile文件啊

2021-11-06 23:06:12 1097

原创 torch.load()模型时报错no module named ‘xxxx‘

加载模型中有自定义的层,以及引用模块,这些必须要事先定义。#加载模型应该把原模型的定义以及导入模块准备好举例:#下面绿色的部分是原有模型model-1.pkl定义的类和引用模块。如果要torch.load('model-1.pkl'),下面定义必须要先写好import numpy as npimport torchimport matplotlib.pyplot as pltclass mymodel (torch.nn.Module): def __init__(self,d_..

2021-10-08 07:35:23 1031

原创 2021-10-03 编写模块使用相对路径

编写模块使用相对路径见下图,其中abc.py是我们编写的代码,有下面内容:# 以下为 abc.py内容f = open("con/f1.txt", "w")txt=f.read()print(txt)以后想作为模块引用即: import abc上面语句绿色的目录要修改,为了避免以后麻烦可以改为:import osmypath=os.path.dirname(__file__) #__file__是执行时本文件绝对位置,被当模块导入时也是,f = open(my..

2021-10-03 08:57:38 80

原创 模块的多级导入,或者叫嵌套的处理。如何避免修改模块

模块的多级导入或者嵌套f1.py 就是我们编写模块的环境,有子目录中文件导入也没关系见图 abc 导入了 f1 , f1导入了f2, 运行abc会发生错误无法导入f2。因为abc运行时,模块搜寻从abc当前文件夹root开始,找不到f2程序文件__init__.py 添加以下内容import sysimport ospath=os.path.dirname(__file__) #系统变量__file__会包含本文件的路径sys.path.append...

2021-10-01 09:57:28 155

原创 tKinter一种简单页面切换

from tkinter import *import tkinter as tkclass Frame1(tk.Frame):#不继承也可以 第一个页面 def __init__(self,master): super().__init__(master) self.place(x=100,y=100) label=tk.Label(self,text="fram1") label.pack() pass ...

2021-09-16 20:44:54 2359

原创 python yaml 读写多个列表

#open方法打开直接读出来importyamlimportosimportsysmypath2=sys.path[0]f=open(mypath2+'/1.yaml','r+',encoding='utf-8')list1=[1,2,3,4]list2=[12,3,4,5,6]yaml.dump_all([list1,list2],f)f.close()f=open(mypath2+'/1.yaml','r+',encod...

2021-08-25 08:27:03 1330

原创 Yaml文件的读写简单案例

# 先写importyamlimportsysmypath2=sys.path[0]print("-获取脚本当前文件夹--",mypath2)f=open(mypath2+'/1.yaml','r+',encoding='utf-8')list1=[1,2,3,4]yaml.dump(list1,f) #写列表f.close()#读f=open(mypath2+'/1.yaml','r+',encoding='utf-8')cfg=f....

2021-08-25 08:17:06 123

原创 P R MAP简单理解,yolo中

Precision(精确率、查准率):已识别的分类准确率我的理解:正确分类的个数/所有识别出来的个数Recall (召回率、查全率)我的理解 :已经识别的个数 / 应该识别的个数MAP@.5 (MeanAccuracy)就是把置信度设定在0.5,超过0.5就是我们就认定他是某类物体平均准确率...

2021-08-16 23:21:22 2533

原创 利用for循环删除列表元素方法,使用reversed函数

#使用reversed,让列表倒序,然后遍历,否则删除元素会导致列表下标变化,不能获取所有元素list1=[1,2,3,4,5]list2=[2,3,4,5,6]for l1 in reversed(list1): #使用reversed函数 从后面循环,避免删除元素后列表变化导致某些元素无法遍历。 if l1 in list2: list2.remove(l1) list1.remove(l1) print(list1,list2)...

2021-08-13 12:49:07 432

原创 tensor如何插入一行为0或者一列为0 其他类似,实现append

这些曲线真难

2021-07-27 15:15:05 1773

原创 numpy函数 where使用详解,以及与 argwhere的 区别

import numpy as npn2=np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])pos=np.where(n1>5)#上面这行会得到上面蓝色的数字位置,6,7,8,9 的位置为(1,3),(2,0),(2,1),(2,2)#但是pos内容是([1,2,2,2],[3,0,1,2]) =(第一维度坐标列表,第二维度坐标列表),pos是tuple...

2021-07-12 16:06:57 1225 1

原创 Sigmoid + BCELoss = BCEWithLogitsLoss 注意一个逻辑错误

input1=Sigmoid(input)loss=BCELoss(input1,target)---------------与下面代码同效果----------------BCEWithLogitsLoss(input, target)-------------------------------------------------------使用时由于input的值可能因为有效数字的问题导致input 中可能有0,或者1 ,导致提示无法求导或者其他错误。因此要限制input 不能太大

2021-07-07 11:59:59 586

原创 近期写了一个类似yolov5简易模型,供研究,有兴趣的大师,共同研究一下。

有兴趣消息中留下qq或者微信,小白勿扰

2021-06-30 09:39:46 303

原创 Giou简洁算法

def Giou(rect_a, rect_b): ax0, ay0, ax1, ay1 = rect_a #a框坐标 bx0, by0, bx1, by1 = rect_b#b框坐标#外框就是包含a与b的最小矩形 outx0 = min(ax0, bx0)#外框x0 outx1 = max(ax1, bx1)#外框x1 outy0 = min(ay0, by0)#外框y0 outy1 = m...

2021-06-28 07:32:43 330

原创 一个简单例子理解BCEWithLogitsLoss的作用

import torchmy_input = torch.FloatTensor([0.2,0.3,0.4])loss_func = torch.nn.BCEWithLogitsLoss()target = torch.FloatTensor([0,0,1])ww=torch.tensor([0.1,0.2,0.3])ww.requires_grad=True #ww允许求梯度for i in range(10): pre=my_input * ww #一个全链接 ...

2021-06-25 20:55:08 1811 1

原创 torch叶子节点才能保存grad,叶子节点如何修改才不变为中间节点,保留grad呢?使用data

#梯度存储在自变量中,grad属性中import torchx = torch.tensor([3.0,5],requires_grad=True)#x设为可以求梯度,由他生成的变量均可求导x1=torch.tensor([3.7,4])#默认不可求梯度y = x ** 2+x1 #x是叶子节点,y是非叶子节点,backward()后y.grad_fn, y.grad不存在z=y[0]+y[1]#判断x,y,z是否是可以求导的print("x1:",x1.requires_gra.

2021-06-18 15:39:46 758

原创 一个简单模型学习了解torch如何训练一个模型,理解如何修改一个模型的权值。

#梯度存储在自变量中,grad属性中import torch#用(1,1)*W =100,学习调整W权值w = torch.tensor([0.1,0.1],requires_grad=True)#这是我们的权值矩阵x=torch.tensor([1.0,1.0]) #输入值y=torch.tensor([100.0]) #目标值for i in range(20): pre=torch.matmul(x,w) # pre=W*X loss.

2021-06-17 16:53:05 443

原创 torch.stack,增加维度,tensor处理

import torcha=torch.tensor([[1,2,3], [4,5,6], [7,8,9]])print(a.shape) # 输出: torch.Size([3, 3])aa=torch.stack((a,a),dim=1) #stack 会在dim插入维度(维度增加),大小为堆的数目print(aa.shape) # 输出: torch.Size([3,2,3])...

2021-06-11 12:11:57 802

原创 2021-06-11 numpy重排,重复,操作,维度不变取,维度变化取

numpy重排,重复,操作import numpy as npb=np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])print(b,"\n")c=b[[0,2,1,1],:] #编号1的行重复2次排到后面print(c,"\n")print(b[:,[0]],"\n") #维度保持不变print(b[:,0]) #维度将会减1...

2021-06-11 10:56:42 595 1

原创 2021-06-11

python装饰器的理解

2021-06-11 08:59:28 48

yolov5 v6.0 有摄像头可以直接使用

有摄像头可以直接使用。使用m

2022-01-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除