![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
jenny_paofu
这个作者很懒,什么都没留下…
展开
-
python中os.path.join()路径拼接
python中常用路径拼接函数os.path.join(),以反斜杠’'连接路径间,并分以下几种情况:1)若待拼接路径均不存在斜杠“/”,则函数均会加上import osprint(os.path.join('path','aaa','bbb'))#输出为:path\aaa\bbb2)若待拼接路径有带斜杠’/'或者‘\’,则带斜杠之前的均被忽略import osprint(os.path.join('aaa','/bbb','ccc'))#输出为:/bbb\ccc3)同时存在‘./’与原创 2022-05-18 10:27:59 · 2174 阅读 · 0 评论 -
解决ValueError:Object arrays cannot beloaded when allow_pickle=False
错误:在进行车道检测训练时运行train_data.py出现错误提示:ValueError: Object arrays cannot be loaded when allow_pickle=False原因:自Numpy 1.16.3版本发行之后,函数 numpy.load() 和 numpy.lib.format.read_array() 采用allow_pickle关键字,现在默认为False以响应CVE-2019-6446 < nvd.nist.gov/vuln/detail / CV原创 2022-04-19 16:40:10 · 2085 阅读 · 0 评论 -
车道检测数据集制作
前面两篇介绍了labelme安装及的将json文件转化为png,这篇介绍怎么将png转化为Lanenet数据集所需~主要是将labelme生成的json批量转化的文件转化为训练数据,源文件中每个文件夹中所包含数据如图:转化为目标文件夹目录:代码参考了别人转化后图像不对,自己修改了下,如下:import sysimport copyimport osimport cv2import numpy as npfrom skimage import measure,color#将label原创 2022-04-18 14:13:30 · 3488 阅读 · 0 评论 -
python深拷贝及浅拷贝详解
简单粗暴从例子先看的,然后再详解深拷贝及浅拷贝两个概念~浅拷贝:栗子1list1 = [1,2,3]list2 = list(list1) #这里就是浅拷贝,也可以写作下面两种写法#list2 = list1[:]#list2 = copy.copy(list1)print(list2)print("list1==list2 ?",list1==list2)print("list1 is list2 ?",list1 is list2)结果1:[1, 2, 3]list1==lis原创 2022-04-15 18:04:09 · 699 阅读 · 0 评论 -
labelme批量制作数据集
上一篇记录了labelme的安装及简单使用,接下来记录将labelme标注后json文件转化为训练数据1. 单个json文件转换为png数据labelme自带的labelme_json_to_dataset功能,只是只能转换单个文件,使用下面命令conda activate labelme #激活labelme环境labelme_json_to_dataset.exe C:\testData\0.json这样在testData文件下会生成一个0_json文件夹,里面有五个文件如图所示其中文件原创 2022-04-13 17:59:01 · 2808 阅读 · 1 评论 -
labelme 安装及简单使用
一.windows1. 和其他环境一样,创建虚拟环境labelmeconda create --name=labelme python=3.8完成后如图,我这之前安装过,所以这里是labelme1激活环境:conda activate labelme2. 安装labelme所需要的依赖环境安装时使用conda 或者pip都可以,安装时候如其一不行就换另一个。conda install pyqtconda install pillow到这里是不是以为完事了,别慌,还有labelm原创 2022-04-13 16:46:46 · 1619 阅读 · 3 评论 -
pycharm快捷键大全
1.编辑类PyCharm快捷键Ctrl + 鼠标 跳转到(变量、方法、类)声明Ctrl + / 行注释Ctrl + Shift + / 块注释Ctrl + Shift + ]/[ 选定代码块结束、开始Alt + / 自动完成(联想)Ctrl + Alt + L 代码格式化Ctrl + Alt + O 优化导入Ctrl + Alt + I 自动缩进Tab / Shift + Tab 缩进、不缩进当前行Ctrl + D 复制选定的区域或行Ctrl + Y 删除选定的行2.运行类PyCha原创 2022-04-13 10:59:53 · 4886 阅读 · 0 评论 -
车道检测数据
车道检测数据车道检测数据网盘亲测有效,百度云连接:https://pan.baidu.com/s/1iyEMu0tcKaVX8nv0zBnSKw提取码: fccj相关json文件:https://github.com/TuSimple/tusimple-benchmark/issues/3原创 2022-01-05 16:22:25 · 487 阅读 · 0 评论 -
python续行符号及替换续行符符号
python续行符号及替换续行符符号续行符号:“\”代码示例if signal=="red" and\car=="moving":#上面代码相当于:if signal=="red" and car=="moving":不需要续行符:第一种:小括号,中括号,花括号第二种:三引号...原创 2021-12-17 16:32:51 · 8126 阅读 · 0 评论 -
pycharm与vs调试的几个快捷键对应
pycharm与vs调试的几个快捷键对应用习惯了VS,换成pycharm的调试快捷键不是很习惯,常用的几个调试快捷键,在这记录分享下~可以简单记为F5~F9,F10 ~F8,前提是已经对其中一个比较熟悉而对另一个不是很熟的情况,可对比记忆。另外一点就是运行,VS中是ctrl+F5,pycharm中直接run...原创 2021-11-22 16:13:59 · 843 阅读 · 0 评论 -
将if-else语句写在一行
将if-else语句写在一行def compareValue(a): if a>100: return 1 elif a==100: return 0 else: return -1def compareValue2(a): return 1 if a>100 else 0 if a==100 else -1print(compareValue(100)) #输出结果为0 print(compareVa原创 2021-11-22 14:38:32 · 2042 阅读 · 0 评论 -
cuda11.2+cudnn8.1+tensorflow2.5.0环境配置
cuda11.2+cudnn8.1+tensorflow2.5.0环境配置首先查看自己电脑是否为英伟达显卡,如果是则往下进行,查看tensorflow与cuda,cudnn对应版本,网址这里,1. 下载cuda网址这里,找历史版本11.2,因为我电脑是3060TI,所以选择了11版本的cuda,cuda版本要低等于cuda驱动的版本。然后双击安装,点击自定义安装,如下图因为驱动版本与cuda本身版本不一致,所以将下图中勾选去掉,不然后续会出错上图点击下一步,出现以下界面cuda安装地址,这原创 2021-11-14 19:09:56 · 9068 阅读 · 2 评论 -
adaconda安装
adaconda安装adaconda下载及安装adaconda下载地址这里,然后基本傻瓜式安装:若更换安装地址,修改下面地址即可然后勾选配置默认环境变量下一步等着就行了安装完成后,检验是否安装成功:cmd+r然后输入查看adaconda版本,如图所示安装成功conda --version接下来记录下tensorflow-gpu安装过程,出门左转,一开始安装环境都会觉得麻烦,容易出错,认真耐心一定可以成功,希望刚入门的朋友们一定耐心认真!...原创 2021-11-14 17:41:22 · 456 阅读 · 0 评论 -
python中yield的用法详解———简单清晰
python中yield的用法详解———简单清晰首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的,最浅显易懂的,我就想问没有有考虑过读者的感受。接下来是正题:首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的,它首先是个return,普通的return是什么意思,就是在程序中返回某个值,返回之后程序就不再往下运行了转载 2021-11-12 10:42:34 · 263 阅读 · 0 评论 -
python的三种取整方式
向下取整:int() , int(3.8)=3向上取整:ceil() , 使用是需要导入math模块import mathmath.ceil(3.36) #4math.ceil(3.2) #4四舍五入: round() , round(4.4)=4,round(4.6)=5分别取整数及小数:math.modf(4.25)=(0.25,4)...原创 2021-10-20 16:03:43 · 460 阅读 · 0 评论 -
关于tensorflow中张量维度—shape参数的理解
本博客记录学习过程,如有错误,烦请大佬指正~shape参数的个数应为维度数,每一个参数的值代表改维度上的长度:shape=(4,) 表示此张量是一个1维张量,有4个数据,一维数据有4个数据;shape=(4,1)表示此张量是一个2维张量,第一个维度长度为4,第二个维度长度为1,二维数组4行1列;shape=(1,4)表示此张量是一个2维张量,第一个维度长度为1,第二个维度长度为4,二维数组1行2列;具体例子:a = tf.constant([[1,2,3,4]])b = tf.constan原创 2021-09-17 14:48:08 · 2090 阅读 · 0 评论 -
python:sklearn标签编码(LabelEncoder)
python:sklearn标签编码(LabelEncoder)sklearn.preprocessing.LabelEncoder的使用:在训练模型之前,通常都要对数据进行一定得处理。将类别编号是一种常用的处理方法,比如把类别“电脑”,“手机”编号为0和1,可使用LabelEncoder函数。作用将n个类别编码为0~n-1之间的整数(包括0和n-1)例子假设对电子产品数据进行编码,数据可以分为两种情况:有NaN,无NaN方法一:使用fit()函数及transform()函数from skl原创 2021-09-07 13:12:37 · 10402 阅读 · 1 评论 -
precision与Recall
precision与Recall在机器学习中,precision与recall是常用的指标,在说这两个概念之前,首先来说下精度(Precision)与准度(Accuracy)。Precision指精度,意味着随机误差(Random Error)小,即方差(Variance)小,描述了实际值的扰动情况。Accuracy指准度,意味着系统误差(System Error)小,即偏差(Bias)小,描述了实际值与真实结果的偏离程度。准确度高,意味着误差(Error)小,Error = Bias + Var原创 2021-08-31 18:05:22 · 8596 阅读 · 2 评论 -
目标检测之IoU
目标检测之IoU本博客主要作为本人学习记录,如果错误烦请指正哟~IoU作为目标检测算法性能mAP计算的一个非常重要的函数,其计算过程是怎样的?1. IoU原理IoU全程交并比(Intersection over Union),计算的是“预测的边框”和“真实的边框”的交集和并集的比值。预测边框的并集容易计算,即两个边框面积相加减去交集,但是交集不易计算。在计算交集时你首先想到的是,根据两个框的相对位置来计算交集,如图:但是这样程序分支太多,设计较为麻烦了,所以可以先从一维角度考虑计算交集,如图原创 2021-08-31 14:45:52 · 400 阅读 · 0 评论 -
tf.keras.preprocessing.sequence.pad_sequences()用法
keras只接受长度相同的序列输入,当数据集序列长度不等时,使用该函数进行padding进行填充。函数说明keras.preprocessing.sequence.pad_sequences(sequences, maxlen=None, dtype='int32', padding='pre', truncating='pre', value=0.)sequences: 浮点数或整数构成的两层嵌套列表maxlen:None或者整数,为序列的最大长度,大于该长度的序列被截短,小原创 2021-08-30 16:43:48 · 836 阅读 · 0 评论 -
python类init函数及call函数简单用法
python类init函数及call函数简单用法本博客用于本人自身学习及记录,如有错误,欢迎指正~init函数相当于构造函数,下面是ResNet一个小模块类的init函数 def __init__(self, filter_num, stride=1): super(BasicBlock, self).__init__() self.conv1 = layers.Conv2D(filter_num, (3, 3), strides=stride, padding原创 2021-08-24 16:46:37 · 468 阅读 · 0 评论 -
tf.cast()数据类型转换
tf.cast()数据类型转换函数tf.cast()函数的作用是执行tensorflow中张量数据类型转换,将图片数据类型为int8类型的,转换为float32。cast定义:cast(x,dtype,name=None)x:被转换的数据(张量)dtype:目标数据类型name:可选参数,定义操作名称int32转换为float32:import tensorflow as tfimport numpy as npt1=tf.Variable([1,2,3,4,5])t2=tf.cas原创 2021-08-20 17:07:26 · 545 阅读 · 0 评论 -
tensorflow的concat(),stack(),split(),unstack()合并及分割函数
tensorflow的concat()及stack()合并函数1.concat()合并数据函数合并两个相同维度的某个维度数据,其他维度个数相同看例子:#contact在某一个维度上进行合并,合并后不会改变维度数a=tf.ones([4,35,3])b=tf.ones([2,35,3])c=tf.concat([a,b],axis=0)print(c.shape)#[6,35,3]2. stack()合并数据函数合并两个dim及shape均相同的数据,合并后会在指定位置增加维度#stac原创 2021-07-24 23:31:32 · 522 阅读 · 0 评论 -
tensorflow向前传播代码
tensorflow向前传播代码手撕向前传播代码,直接上代码,一些细节在注释,不对地方,各位大佬请指示~import tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import datasetsimport os#不输出不必要的信息os.environ['TF_CPP_MIN_LOG_LEVEL']='2'#x:[60k,28,28]#y:[60k](x,y),_=datasets.mnist.lo原创 2021-07-24 22:19:14 · 125 阅读 · 0 评论 -
tf.data.Dataset.from_tensor_slices的用法
tf.data.Dataset.from_tensor_slices的用法该函数是dataset的核心函数之一,它的作用是把元组、列表和张量等数据进行特征切。假设有两组数据,分别是特征和标签,为了简化说明问题,我们假设每两个特征对应一个标签。然后把每个标签与之对应的两个标签组成tuple,那么我们的想法是让每个标签恰好对应两个特征,而且像直接切片,如[f11,f12][t1],f11表示第一个数据的第1个特征,f12表示第1个数据的第2个特征,t1是第一个数据标签。tf.data.Dataset.fro转载 2021-07-16 11:00:12 · 1818 阅读 · 0 评论 -
python3 enumerate函数用法
python3 enumerate()函数用法enumerate(x,y) 函数用于将一个可遍历的数据对象(如列表list、元组tuple或字符串str)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。其用法和range()很相似。enumerate(x,y)参数:x是数据对象真实数据,y是索引,y可以省去默认从0开始。示例1:list=['this','is','blog','of','paofu']for step,str in enumerate(list):原创 2021-07-10 19:07:49 · 446 阅读 · 0 评论 -
python print()函数
python print()函数输出字符串和相对应变量取值 initialB=0 initialW=0 print("start gredient descent at b={0},w={1},error={2}" .format(initialB,initialW,compute_error_for_line_given_points(initialB, initialW, points)))输出结果:start gredient descent at b=0,w=0,e原创 2021-07-09 18:01:45 · 87 阅读 · 0 评论 -
python3中range()函数用法
python3中range()函数用法python3 range()函数返回的是可迭代对象,并不是列表类型,打印时不会打印列表。python3 list()函数是对象迭代器,可把range()返回的可迭代对象转为一个列表,返回的变量类型是列表。python2 range()函数返回的是列表类型,可打印列表。函数语法range(start,stop,step)参数说明:start: 计数从start开始。默认是0,range(6)等价range(0,6)。stop: 计数到stop结束,原创 2021-07-09 15:55:21 · 324 阅读 · 0 评论 -
python 中if __name__==‘__main__‘
Python中if name==‘main’:python文件通常有两种用法:一种是以脚本直接运行,另一种是被import到另一python文件调用执行。if name==‘main’:的作用:控制这两种情况执行代码的过程,在该句之后的代码只有在第一种情况下才会被执行,而第二种情况不会被执行。例子:创建第一个python文件datatype.py,代码如下:print('在主程序之前')print('__name__', __name__)if __name__=="__main__":原创 2021-06-11 17:46:28 · 417 阅读 · 0 评论 -
Keras模型中数据维度报错
ValueError: Input 0 of layer dense is incompatible with the layer: expected axis -1 of input shape使用深度学习Keras的Sequential框架搭建神经网路模型,关于数据维度报错问题ValueError: Input 0 of layer dense is incompatible with the layer: expected axis -1 of input shape to have value原创 2021-04-27 15:23:25 · 4194 阅读 · 0 评论 -
分水岭算法opencv+python使用
记分水岭算法的使用首先分水岭算法是一种阈值分割算法,多用来查找图像中边缘,其原理解释可看别的博文或者视频,这里不再赘述。下面代码主要用来查找图像中最长的边缘轮廓线# import cv2# import numpy as np# from matplotlib import pyplot as plt# img_color = cv2.imread("sources/coins.jpg",1)# img_gray = cv2.cvtColor(img_color,cv2.COLOR_BGR2G原创 2021-04-21 16:45:20 · 392 阅读 · 4 评论 -
python中字符的获取/截取
Python截取字符串方法python中允许通过索引来操作字符串中的单个或者多个字符,通过索引获取对应字符,或者返回字符的索引值。获取单个字符str[index]:str 字符串名字,index表示索引值。另外,python允许从字符串两端使用索引:1)当以字符串的左端(字符串的开头)为起点时,索引是从 0 开始计数的;字符串的第一个字符的索引为 0,第二个字符的索引为 1,第三个字符串的索引为 2 ……2)当以字符串的右端(字符串的末尾)为起点时,索引是从 -1 开始计数的;字符串的倒数第一原创 2021-04-17 13:06:46 · 5168 阅读 · 1 评论 -
python学习
pandas 中loc和iloc 函数用法详解loc函数:通过行索引中具体值来获取行数据(如取第一行为“A”的行)iloc函数:通过索引即行号来获取行数据(如第二行数据)1.利用上面两函数取行数据import numpy as npimport pandas as pd#创建一个Dataframedata=pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('ABCD')) In[1]: data原创 2021-04-15 13:58:39 · 51 阅读 · 0 评论