编程学习
Forizon
Talk is cheap, show me your code!
展开
-
Anaconda配置pytorch环境范例
Anaconda Pytorch原创 2022-10-20 01:57:30 · 479 阅读 · 0 评论 -
VOC数据集解析--python实现分离图片训练分类网络
以voc2007数据为例,下载后的数据格式如下:Annotations文件夹里保存的是目标检测用到的.xml文件,文件名是图像名称ImageSets文件夹里面是图像划分的集合 ,打开之后有3个文件夹:Layout、Main、Segmentation,这3个文件夹对应的是 VOC challenge 3类不同的任务。VOC challenge的Main task,其实是classification和detection,所以在Main文件夹中,包含的就是这两个任务要用到的图像集合,如下图所...原创 2022-04-30 23:05:50 · 1149 阅读 · 0 评论 -
工具类代码记录
1.混淆矩阵(最终show出来的矩阵是小图,窗口方法即是清晰大图)import matplotlib.pyplot as plt# 初始化一个全0矩阵 cls_num为分类的类别数量confusion_mat = np.zeros([cls_num, cls_num])# 根据模型测试阶段的图像GT和pred更新confusion_mat# 画出混淆矩阵plt.matshow(confusion_mat, cmap=plt.cm.Greens)plt.colorbar()for i原创 2022-03-23 14:46:18 · 720 阅读 · 0 评论 -
Windows下两行代码解决matplotlib画图不能显示中文
原创 2022-02-27 12:46:43 · 462 阅读 · 0 评论 -
tensorflow、pytorch强制关闭GPU释放显存
环境中安装numba然后添加以下代码:from numba import cudadevice = cuda.get_current_device()device.reset()cuda.close()原创 2021-09-25 19:37:19 · 1902 阅读 · 1 评论 -
Keras h5模型转tflite格式(tensorflow1.13.0+keras2.2.4)
转载https://blog.csdn.net/qq_42131061/article/details/106209894测试成功原创 2021-04-14 20:50:02 · 448 阅读 · 0 评论 -
Python中Matplotlib的点、线形状及颜色(绘制散点图)
我们在Python中经常使用会用到matplotlib画图,有些曲线和点的形状、颜色信息长时间不用就忘了,整理一下便于查找。安装matplotlib后可以查看官方说明(太长不贴出来了)from matplotlib import pyplot as plthelp(plt.plot)常用颜色:'b' 蓝色'g' 绿色'r' 红色'c' 青色'm' 品红'y' 黄色'k原创 2021-02-01 19:49:20 · 127594 阅读 · 11 评论 -
阿里云实现frp内网穿透并挂载多台服务器
承接上文https://blog.csdn.net/hesongzefairy/article/details/105543161之前将内网的服务器通过frp内网穿透挂上了外网的阿里云,离校的同学们也可以愉快的访问内网服务器,但是当时只有一台内网服务器挂上了阿里云,现在尝试一个阿里云挂载多台内网服务器原理如下:原理解释:内网服务器无论是一台还是多台,和阿里云服务器的通信端口只能是同一个端口,也就是图中的bind_port(阿里云通信端口)和server_port(内网服务器)都是通过50原创 2021-01-14 11:17:59 · 2010 阅读 · 2 评论 -
如何关闭终端后保持ssh远程连接运行程序不终止(tmux基本操作)
一般使用服务器都是通过ssh远程访问,一旦代码跑起来不小心关闭终端则代码也会随之终止,原因就在于这种情况下,代码运行的会话和终端是绑定了,终端关闭则程序停止使用tmux:terminal multiplexer(终端复用器)可以使终端和会话分离(detach),这样关闭终端时运行的程序不会停止第一步:安装tmux# Ubuntu 或 Debiansudo apt-get install tmux# CentOS 或 Fedorasudo yum install tmux# Mac原创 2021-01-13 21:04:46 · 4125 阅读 · 0 评论 -
Python使用matplotlib绘制3D散点图
通过ax.scatter3D()来使用Matplotlib的mplot3d工具包,创建一个3D散点图示例1:# Import librariesfrom mpl_toolkits import mplot3dimport numpy as npimport matplotlib.pyplot as plt# Creating datasetz = np.random.randint(100, size=(300))x = np.random.randint(80, size=(300原创 2021-01-01 15:48:08 · 10570 阅读 · 4 评论 -
Python下通过PR曲线值计算AP
直接放代码,从官方那边抠出来的AP计算代码,代码内部分为voc2007之前的11点计算方法和voc2007之后的方法,目前都已经采用else:内的计算方法import numpy as npdef voc_ap(rec, prec, use_07_metric=False): """ ap = voc_ap(rec, prec, [use_07_metric]) Compute VOC AP given precision and recall. If use_07_met原创 2020-12-20 10:01:23 · 2106 阅读 · 1 评论 -
提取Tensorboard的loss曲线平滑重画
tensorboard中的loss曲线在网页中可以通过设置平滑参数,画出比较漂亮的曲线,但是平滑后的曲线是没办法直接提取出来的这里我们直接从tensorboard的页面中点击Show data download links,然后把曲线的csv文件下载下来,通过下面的代码平滑处理:定义smooth函数,输入tensorboard下载的csv,然后保存平滑之后的csv文件import pandas as pdimport numpy as npimport osdef smooth(csv_原创 2020-12-15 17:36:31 · 7036 阅读 · 4 评论 -
Ubuntu18.04下配置Open3D及Open3D-ML
项目地址:https://github.com/intel-isl/Open3D、https://github.com/intel-isl/Open3D-ML这个项目如果仅仅是安装Open3D,那么对系统的版本没有要求,如果要配置Open3D-ML那么对于Ubuntu就必须是18.04以上,这里我直接配置Open3D-ML环境要求:Ubuntu18.04、pytorch1.6、编译CUDA10.11. 配置Open3Dpip install open3d -i https://pypi原创 2020-11-29 10:26:52 · 2308 阅读 · 4 评论 -
Ubunt16.04下docker容器的一些常用操作记录
Docker及nvidia-docker的安装方法可参考:https://blog.csdn.net/hesongzefairy/article/details/1087583611. docker寻找镜像直接登录https://hub.docker.com/查找或者终端使用(一般是作者名/搜索内容,如:nvidia/cudaxxx)docker search xxx2. docker拉去镜像(下载一个ubuntu18.04且包含cuda10.1的镜像)docker pull t原创 2020-11-27 23:12:49 · 146 阅读 · 0 评论 -
Ubuntu16.04下配置OpenPCDet
前置准备:Anaconda、编译安装CUDA10.1地址:https://github.com/open-mmlab/OpenPCDet/blob/master/docs/INSTALL.md1. 创建conda虚拟环境conda create -n torch13 python=3.6conda activate torch13# conda install cudatoolkit=10.1# conda install cudnn==7.6.52. 安装pytorch1.3.原创 2020-11-27 22:53:47 · 761 阅读 · 0 评论 -
CVPR2017: Densecap复现记录
复现https://github.com/InnerPeace-Wu/im2p-tensorflow新容器先更换清华下载源,然后安装anaconda,更换anaconda下载源再开始下面的步骤1. 创建conda虚拟环境并激活conda create -n vg python=2.7conda activate vg2. wheel文件安装tensorflow-gpu 1.4.0文件下载路径https://pypi.org/project/tensorflow-gpu/1.4.0/#原创 2020-11-13 19:46:15 · 336 阅读 · 0 评论 -
opencv画旋转框(坐标对应关系)
旋转目标检测中常常需要用opencv的cv2.boxPoints()画旋转框,但是具体输出和图中四个顶点坐标是如何对应的,需要研究一下。opencv中图片左上角是(0,0),旋转框定义为[x,y,w,h,theta],角度theta是指框与x轴所组成的锐角,并且框的这条边记为w,另一条边记为h,角度范围[-90,0)。代码片段:# 中心点坐标(x_c,y_c) 宽w 高h 旋转角度theta# 最小外接矩形,返回八个坐标值(x1,y1) (x2,y2) (x3,y3) (x4,y4)原创 2020-10-23 22:14:55 · 3838 阅读 · 2 评论 -
代码复现:遥感旋转目标检测(可训练自己的数据集)
follow了上交博士大佬yangxue的两个方法,这篇仅记录复现过程中碰到的问题,具体论文的介绍就不写了,大佬自己的知乎已经写得非常详细了。SCRDet:https://zhuanlan.zhihu.com/p/107400817CSL:https://zhuanlan.zhihu.com/p/111493759复现的第一个方法:https://github.com/DetectionTeamUCAS/R2CNN-Plus-Plus_Tensorflow在Ubuntu16.04下1、原创 2020-11-13 15:14:43 · 4506 阅读 · 6 评论 -
COCO数据格式一个json转VOC数据格式多个xml
FLIR数据集中给的annotation是一个json文件,想训练yolo这样的网络,需要把一个json文件切分成多个xml文件,具体原理就是先读取json文件,然后根据图像文件夹中的图像名字找到对应的annotation信息,最后写入xml文件中保存,需要提前安装pycocotools(安装方法见https://blog.csdn.net/hesongzefairy/article/details/105745504)。代码如下:# translate coco_json to xml# 使用原创 2020-10-10 21:41:14 · 1446 阅读 · 9 评论 -
Ubuntu16.04安装Docker、Nvidia-docker(含离线安装)
docker官方教程:https://docs.docker.com/engine/install/ubuntu/nvidia-docker官方教程:https://github.com/NVIDIA/nvidia-docker一. 安装Docker Engine(docker-ce)1. 如果有旧版本,先卸载sudo apt-get remove docker docker-engine docker.io containerd runc2. 安装docker-ce更新apt软件原创 2020-09-23 18:03:36 · 1627 阅读 · 6 评论 -
快速入门算法:BFS广度优先遍历
总的来说,BFS首先将问题抽象为一个图,从一个起点开始均匀的向四周扩散,比如二叉树这种结构,从root开始下一步同时遍历root.left和root.right,一般BFS需要配合队列这种数据结构,每次一个节点出队就将其附近的节点入队。BFS相对DFS最主要的区别是:BFS找的的路径一定是最短的,代价是空间复杂度比DFS大很多。再说一个重点,什么样的问题需要用到BFS?这样的问题本质就是在抽象出来的图上,找到起点start到终点target的最短路径,听起来是个最值问题是不是想到了动态规划,后面原创 2020-08-22 12:53:00 · 270 阅读 · 0 评论 -
Pytorch环境配置问题详解
之前都是按照官网命令来安装,但是有时候官网这个下载速度实在是慢得让人受不了,这里给出另一种安装方式,用安装包来安装pytorch,利用清华镜像源和anaconda。首先创建一个虚拟环境并激活conda create -n torch python=3.6conda activate torch然后在清华源头下载安装包https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/根据自己的需要,选择Linux系统还是win-原创 2020-08-14 17:34:11 · 689 阅读 · 1 评论 -
快速入门算法:动态规划
动态规划问题的一般形式是“最值问题”,如:最长递增子序列、最小距离等等那么计算机如何求解动态规划问题,其实就只有一种方法“穷举法”,没错,就是暴力的穷举出所有情况,然后在所有答案中找到一个最优的解,这就是动态规划最基本的思想。但是穷举是基本思想,动态规划还有其独特之处,首先动态规划这类问题存在“重叠子问题”,如果直接完全暴力穷举算法效率会非常低,存在大量的重复计算,需要用备忘录或者维护一个DP table来优化穷举过程,将计算过的值存储下来,避免冗余计算。其次,动态规划问题一定具备“最优子结构”,这原创 2020-08-13 16:23:22 · 262 阅读 · 0 评论 -
牛客网在线判题系统(输入输出问题)
之前一直用LeetCode刷题,但是线上笔试基本都是牛客网的OJ系统对输入输出有一些要求,第一次考试没有提前做功课,算法题在case输入这里坑了很多时间,题目做出来但是case通过率0%,记个笔记。1.第一类:牛客网里的剑指offer的题和leetcode上一样,函数定义已经写好了,只需要完成函数,返回相关的值就可以,不需要处理任何输入输出,不要在函数里输出任何东西。2.第二类:对于传统ACM的OJ模式题目,程序需要stdin(标准输入)读取输入,然后stdout(标准输出)来打印结果,OJ一次处理原创 2020-08-08 12:28:37 · 5606 阅读 · 0 评论 -
Ubuntu16.04下基于BERT预训练的中文命名实体识别
开始之前,需要先明确中文命名实体识别这个任务是在做什么,以及数据集标注的格式。命名实体识别(英语:Named Entity Recognition,简称NER,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等,以及时间、数量、货币、比例数值等文字。以数据标注来举例:美 B-LOC国 E-LOC的 O华 B-PER莱 I-PER士 E-PER我 O跟 O他 O谈 O笑 O风 O生 O 它的每一行由一个字及其对应的标注组成,标注集采用BIOE原创 2020-07-25 18:26:28 · 271 阅读 · 0 评论 -
关于BERT、ALBERT做NER的网址记录
1.https://github.com/google-research/bert#fine-tuning-with-bert(谷歌开源BERT)2.https://blog.csdn.net/macanv/article/details/85684284(基于BERT预训练的中文命名实体识别TensorFlow实现)3.https://www.jianshu.com/p/b05e50f682dd(序列标注——实体识别BERT-BLSTM-CRF)4.https://www.jian...原创 2020-07-11 22:30:35 · 838 阅读 · 0 评论 -
python批量修改文件名、批量修改xml文件的path和filename
1. python批量修改文件名(控制文件名的起始编号)import ospath = "E:/Project/label/fire/" # 目标路径filename_list = os.listdir(path) # 扫描目标路径的文件,将文件名存入列表t = 0a = 900 # 文件名的起始编号for i in filename_list: used_name = path + filename_list[t] new_name = path + str原创 2020-07-11 16:14:18 · 2533 阅读 · 3 评论 -
python爬取指定名称类别的图片
自己准备数据集的时候经常会用到,从百度爬取指定类别的图片,比如“火灾”,记个笔记import requestsimport os def getManyPages(keyword,pages): params=[] for i in range(30,30*pages+30,30): params.append({ 'tn': 'resultjson_com', 'ipn':原创 2020-07-11 16:03:09 · 1724 阅读 · 3 评论 -
Ubuntu16.04下实现darknet-yolov3训练自己的数据(含loss图、mAP计算)
记录一下本地编译darknet并用自己的数据集来训练yolov3的过程,最后补充了mAP的计算方法。1.环境配置首先CUDA和Cudnn是必备的,安装有很多教程就不多写了,opencv安装比较麻烦可以不用装2.本地编译darknet从github获取darknetgit clone https://github.com/pjreddie/darknetcd darknet修改Makefile文件GPU=1 #如果使用GPU设置为1,CPU设置为0CUDNN=1 #如果使原创 2020-07-07 16:56:18 · 2293 阅读 · 3 评论 -
关于卷积神经网络的一点总结
对CNN写一点总结,好记性不如烂笔头!1. 对于神经网络而言,层数越多参数量就越大,则需要更多的数据来防止过拟合,而CNN具有权值共享、稀疏连接的特点,有效的减少了参数量防止过拟合。2. 卷积核(kernal)也可称作过滤器(filter)3. 相比图像中的卷积计算,深度卷积神经网络就是把kernal当作参数来训练4. 如果只使用卷积操作,图像在卷积后size会缩小,使用same padding在原图周围填0,可以保持卷积后图像size不变5. kernal通常是奇数的原因:奇数方便pa原创 2020-07-03 09:30:13 · 219 阅读 · 0 评论 -
Win10下手把手教你Mask RCNN绘制PR曲线、计算mAP
导航:1. keras版的mask rcnn环境配置https://blog.csdn.net/hesongzefairy/article/details/1047021192. keras版的mask rcnn训练自己的数据集https://blog.csdn.net/hesongzefairy/article/details/1057383183.一文理解精确率Precision、召回率Recall以及ROC曲线https://blog.csdn.net/hesongzefairy/art.原创 2020-06-14 16:42:06 · 11186 阅读 · 115 评论 -
Python读取保存txt、csv、json文件方法
一. txt文件的读取与保存def text_save(filename, data):#filename为写入txt文件的路径,data为要写入数据列表. file = open(filename,'a') for i in range(len(data)): s = str(data[i]).replace('[','').replace(']','')#去除[],这两行按数据不同,可以选择 s = s.replace("'",'').replace原创 2020-06-14 11:18:54 · 976 阅读 · 0 评论 -
Python读取图像数据的常用方法
一. 图像的读取和存储方法1.opencv-pythonimport cv2# read image, return np.array with BGRraw_image = cv2.imread("panda.jpg")# BGR to RGBimage_rgb = cv2.cvtColor(raw_image,cv2.COLOR_BGR2RGB)# image resizeimage_resize = cv2.resize(raw_image, (128, 128))# sav原创 2020-06-08 21:51:40 · 1632 阅读 · 0 评论 -
Pycharm下配置PyQt5+QtDesinger(信号槽初步使用)
Python下的GUI界面设计一般有两个选择,一个是python自带的Tkinter,一个是PyQt5,两者相较而言我还是更推荐PyQt5,PyQt5可以利用QtDesinger进行可视化的界面设计,只需要简单的配置,所有需要添加到界面的控件都可以拖动设置,非常方便。前提条件Pycharm、Anaconda环境配置pip install pyqt5pip install pyqt5-toolsPycharm配置1. 打开File—>Settings—>Externa原创 2020-05-26 13:14:52 · 1570 阅读 · 2 评论 -
批量修改文件名方法:everything软件
批量修改文件名的最佳方法打开everything软件,直接待修改文件的文件夹的路径然后选中要修改的文件,按F2进入修改模式这里我将原本的img00076这样的文件名修改为000076,可以在界面中逐步尝试,每一次修改都是实时显示修改结果确定之后就能修改选中的所有文件的文件名,非常的方便!...原创 2020-05-24 17:27:04 · 12583 阅读 · 0 评论 -
Win10手把手教你使用Tensorflow Object Detection API(SSD+MobileNetv2训练VOC2007)
项目地址:https://github.com/tensorflow/models这次可以和大家分享的是Tensorflow Object Detection API的简单使用方法,以SSD+MobileNetv2的测试以及训练来举例,尽量以简单的语言描述Tensorflow Object Detection API的使用方法。Step1:环境配置需要的环境可以参考installation.md,但是里面没有写win10的配置方法,win10下我还是用Anaconda来配置# 创建虚拟环境原创 2020-05-23 22:36:25 · 1580 阅读 · 3 评论 -
解决ImportError:libSM.so.6:cannot open shared object file:No such file or directory等问题通用方案
在使用Ubuntu系统下运行代码,常常会碰到这样的问题:ImportError:libSM.so.6:cannot open shared object file:No such file or directoryImportError:libXrender.so.1:cannot open shared object file:No such file or directory基本都是ImportError:libxxx.so.x.....之类的,缺少共享文件库通用的解决办法如下,以后类似原创 2020-05-19 17:00:25 · 1262 阅读 · 0 评论 -
Ubuntu18.04复现keras_Realtime_Multi-Person_Pose_Estimation(含训练)
项目地址:https://github.com/michalfaber/keras_Realtime_Multi-Person_Pose_Estimation论文地址:https://arxiv.org/abs/1611.08050COCO数据集下载地址:train2017http://images.cocodataset.org/zips/train2017.zip(18G)val2017http://images.cocodataset.org/zips/val2017.zip ...原创 2020-05-19 17:00:44 · 730 阅读 · 7 评论 -
Ubuntu18.04下复现YOLOv4(YOLOv3亦可)
承接上文,复现一下Alexey Bochkovskiy的YOLOv4,本文先从环境配置开始,最后实现一帧图像的检测,如何训练自己的数据不在本文讨论范围(可能是下一篇),这里不得不佩服AB大佬,GitHub点开全是干货,无论是windows下还是linux下,操作流程非常详细,而且如果你之前已经成功复现了YOLOv3那么只需要改动一点参数就能使用YOLOv4,对接完美简直不要太方便。项目地址:h...原创 2020-04-28 19:12:06 · 5099 阅读 · 8 评论 -
Win10下手把手教你在Keras版YOLOv3、Faster RCNN上训练自己的数据
关于这两个模型的环境配置,如何跑通demo来检测一张图片等内容,在我之前的博客有详细介绍https://blog.csdn.net/hesongzefairy/article/details/105228434(Windows10下快速复现keras yolov3)https://blog.csdn.net/hesongzefairy/article/details/105238349(...原创 2020-04-25 11:52:26 · 888 阅读 · 0 评论