- 博客(44)
- 收藏
- 关注
原创 tensorflow加载与保存模型
问题:1.训练好分类模型,比如训练保存了一个10分类的模型,但是实际用的时候呢,分类数可能会改变,但是还想继续使用前面保存的模型。那么相当于是只加载前几层的参数,最后一层做一些修改。2.加载预训练模型时,预训练模型缺少网络中定义的变量保存模型saver = tf.train.Saver()saver.save(sess,“model.ckpt”)加载模型saver.restore(sess,“model.ckpt”)不传参数时,相当于是保存了所有的参数,然后加载所有的参数。加载模型时变量缺
2021-01-10 16:14:37
34
原创 超详细的卷积后大小的计算公式
计算公式定义定义几个参数输入图片大小 W×W卷积核大小 F×F步长 Spadding的像素数 P于是我们可以得出计算公式为:N = (W − F + 2P )/S+1输出图片大小为 N×N以resnet50为例,输入为[1,3,224,224],其中1为batchsize,3为通道数,224为height和width。经过第一层卷积后,其大小为[1,64,112,112]in_channels= 3//输入通道out_channels= 64 //输出通道nn.Conv2d(in_
2021-01-07 20:15:58
420
1
原创 python重写tf.nn.ctc_greedy_decoder
greedy search参考链接:https://zhuanlan.zhihu.com/p/39266552基本原理就是将每个时间 t 内最大概率的 k 取出即可。下面通过一个例子来阐述:y 的分布如下:那么greedy search的结果为例如当 t=1时,在序列 [0.25,0.4,0.35]中得到最大概率为0.4,依次找到各时间内的最大概率即可。代码实现:应用在crnn_ctc文字识别中输入inference_output大小为[25,1,37],其中25为单词宽度,1为bat
2020-12-29 22:28:28
139
原创 python线程池与进程池
因为python有GIL(Global Interpreter Lock(全局解释器锁)),无论cpu是不是多核cpu,其同一时刻只能有一个线程使用cpu,所以多线程适用于I/O密集型任务,多进程适用于cpu密集型任务。线程池concurrent.futures 模块提供异步执行回调高层接口。异步执行可以由 ThreadPoolExecutor 使用线程来实现。使用多线程并得到线程返回的结果示例:from concurrent.futures import ThreadPoolExecutord
2020-12-04 19:42:05
23
原创 docker中使用cv2
在docker中使用cv2报如下错误:解决方法:sudo apt updatesudo apt install libgl1-mesa-glx
2020-11-05 15:35:52
20
原创 python从pdf中抽取图片
安装依赖pip install PyMuPDF Pillow导入依赖包import fitz # PyMuPDFimport iofrom PIL import Image加载pdf文件# file path you want to extract images fromfile = "1710.05006.pdf"# open the filepdf_file = fitz.open(file)遍历每个页面,提取图片# iterate over PDF pagesfor p
2020-10-12 16:56:27
225
原创 Missing key(s) in state_dict
pytorch加载模型时报错RuntimeError: Error(s) in loading state_dict for DataParallel:Missing key(s) in state_dict: “module.backbone.layers.0.stage_1.layers.0.weight”,这是因为加载的预训练模型之前使用了torch.nn.DataParallel(),而此时没有使用,所以可以加上该模块或者去掉。解决方法一:加上torch.nn.DataParallel()模
2020-10-07 20:34:04
77
原创 TensorRT(二) TensorRT使用
TensorRT工作流程如上图所示,是一个从摄像头获取视频流并使用TensorRT加速推理的一个过程,下面大致对上图进行讲解。1.首先要获得一个TensorRT支持的模型格式,TensorRT支持uff、onnx、caffee三种格式。2.工作流程图中使用转好的uff格式的模型构建TensorRT Engine,有两种构建方式,一种使用TensorRT自带的工具trtexec,另一种使用TensorRT的C++和python的API接口用于构建。TensorRT自带的工具trtexec,例子如下,
2020-08-06 16:17:39
439
原创 TensorRT(一) 安装Jetson AGX Xavier
TensorRT简介NVIDIA TensorRT™ 是用于高性能深度学习推理的 SDK。此 SDK 包含深度学习推理优化器和运行时环境,可为深度学习推理应用提供低延迟和高吞吐量。可以从每个深度学习框架中将已训练模型导入到 TensorRT。应用优化后,TensorRT 选择平台特定的内核,在Jetson 嵌入式平台或其他支持TensorRT的平台更大限度提升性能。本文中使用的是Jetson AGX Xavier。安装Jetson AGX Xavier安装过程在此不赘述,附两个比较不错的安装参考链接
2020-08-06 15:28:34
405
原创 opencv帧差法生成视频摘要
视频摘要简介通过运动目标分析,提取运动目标,然后对各个目标的运动轨迹进行分析,将不同的目标拼接到一个共同的背景场景中,即同时展现在不同时间出现的多个对象。视频摘要主要运用在对长时间的监控视频的压缩上,节省视频占用的空间,同时可以保留视频中的目标和活动。一般的视频摘要的步骤可以总结为:视频读取→背景建模 → 前景提取→ 目标轨迹跟踪→ 目标的时序与空间规划 → 生成浓缩视频本文主要通过一个简单的去除视频里非运动帧来实现一个简单的视频压缩的功能。帧间差分法简单的视频压缩就是想把完全静止不动的视频
2020-07-31 22:37:09
97
原创 ubuntu安装opencv和opencv-contrib
若要安装opencv-contrib,那么需要将opencv-contrib下载下来与opencv一起编译。参考链接:https://blog.csdn.net/qq_38236355/article/details/88864023https://docs.opencv.org/3.4.3/d7/d9f/tutorial_linux_install.htmlhttps://blog.csdn.net/ksws0292756/article/details/79511170...
2020-07-11 15:54:27
81
原创 Pytorch的tensor与numpy的转化
1.numpy转为tensornp2tensor = torch.fromnumpy(numpy1) # numpy1为ndarray2.tensor转为numpy tensor2np = tensor1.numpy() # tensor1为tensor但是有可能会有这个错误:TypeError: can’t convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor那么将tensor先拷贝到CPU再转 tenso
2020-07-03 08:56:52
279
原创 LeetCode 70.爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。解题思路:n=1时,方法有1种n=2时,方法有2种n=3时,方法有3种n=4时,方法有5种可得递推式F(n) = F(n-1) + F(n-2),类似于斐波那契数列。解法一:递归,这个递交显示超出时间限制时间复杂度O(2n),空间复杂度O(n)int climbStairs(int n) { if (n == 1) {
2020-06-30 22:48:41
38
原创 神经网络可视化工具netron
可视化神经网络有两种方式:1.网页版https://lutzroeder.github.io/netron/打开网页上传你的模型即可看到模型的结构。2.python版附上github链接:https://github.com/lutzroeder/netron安装netron:pip install -i https://pypi.douban.com/simple/ netronimport netronmodel_path = "../weights/ssd.onnx"netron.
2020-06-15 15:10:26
271
原创 linux core dump
1.core文件是什么?核心文件(core file),也称核心转储(core dump),是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。这种信息往往用于调试。2.生成core文件 ulimit -a 查看相关环境如图所示,core文件大小为0,那么我们需要设置其大小。使用命令: ulimit -c 100 设置其大小为100k3.调试core文件运行程序,程序出错时会在当前目录下产生core文件。然后可以使用gdb进行调试
2020-05-29 17:10:39
54
原创 ubuntu16.04安装libopencv-dev缺少依赖
安装libopencv-dev时,提示缺少依赖。缺少了依赖的包怎么解决呢?笨方法:那我们就apt-get install 缺少的包名,然后就会发现套娃,加入从第一个包进行安装的时候又会提示缺少另一个包,当场扑街。。。查找资料的时候发现了aptitude包管理系统。所以用如下命令:sudo apt-get install aptitudesudo aptitude install libopencv-dev然后会提示如下Accept this solution? [Y/n/q/?] nTh
2020-05-21 15:58:09
1236
2
原创 ssd模型pytorch版fine-tune
最近在做目标检测的相关项目,由于是深度学习小白,所以踩了很多坑,对此做一下总结。关于fine-tune和迁移学习ssd.pytorch代码链接:https://github.com/amdegroot/ssd.pytorch由于对深度学习不了解,所以连fine-tune什么意思都不懂。。。。查阅了一些资料后,大致有了一些了解,以下若有错误的地方,还烦请指正。迁移学习迁移学习(Transfer learning) 顾名思义就是把已训练好的模型参数迁移到新的模型来帮助新模型训练。拿这个代码为例,作者
2020-05-17 13:04:38
198
原创 centos和ubuntu查找缺少的共享库
centos写这篇文章是因为用docker的centos镜像安装python的opencv-python的库时导致的问题。如下图:缺少了libSM.so.6解决方案使用如下命令查看缺少得共享库yum whatprovides libSM.so.6使用yum install安装yum install libSM-1.2.2-2.el7.x86_64 //因为电脑是64位,这里用...
2020-04-18 17:50:23
128
原创 搭建SRS流媒体服务
srs简介SRS全称Simple RTMP Server,定位是运营级的互联网直播服务器集群,是一个非常简单就可以推送rtmp视频流的服务器.github主页:https://github.com/ossrs/srs获取srs git clone https://github.com/ossrs/srs编译srscd srs/trunk./configure && ...
2020-04-18 17:38:51
366
原创 安装pytorch
安装pytorch登录官网:https://pytorch.org/get-started/locally/找到适合自己系统,包管理工具的安装命令进行安装。测试是否安装成功import torchx = torch.rand(5, 3)print(x)若安装成功则会显示如下输出:若安装了CUDA,则可用以下命令检测CUDA是否安装成功import torchtorch.c...
2020-03-13 18:23:39
48
原创 python读取csv的指定行
使用python的csv模块csv.reader会返回一个reader对象,这是一个可迭代的对象,从csv文件读取的每一行都作为字符串列表返回。输出csv文件的前100行: with open('testcsv', 'r', newline='', encoding='utf-8-sig', errors='ignore') as f: csv_write = csv....
2019-12-23 12:42:54
2235
原创 python清空列表的方法与区别
暂且提两种较常用的清空list的方法1)clear()示例:list_1 = [1,2,3,4,5]list_2 = list_1list_1.clear()print(list_1)print(list_2)得到的结果如下:[][]这种办法还有一种办法,就是利用列表的copy函数可以解决同时删除的情况,这牵扯到列表的直接赋值,浅拷贝和深拷贝问题,有兴趣的可以了解一下,参...
2019-12-08 19:01:23
251
原创 python在迭代列表时进行删除
在用for进行迭代列表时,发生如下情况:list1 = [1,2,3,4,5,6,7,8]for i, number in enumerate(list1): if number > 5: list1.pop(i)print(list1)得到的答案如下:[1, 2, 3, 4, 5, 7]很明显结果不对,因为在迭代过程中删除导致了下标向后多移了一项,删除...
2019-10-31 19:32:40
492
原创 python中// 和/有什么区别
python中// 和/有什么区别通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如:8 / 4 = 2 ; 8,4都是整数,那么结果也就是整数2;8.0 / 4.0 = 2.0 ; 8.0,4.0是浮点数,那么结果也是浮点数2.0,跟精确的说,只要" / " 两边有一个数是浮点数,那么结果就是浮点数。在python中," / “就一定表示 浮点数除法,...
2019-09-22 16:30:47
166
原创 字典循环时的“坑”
字典循环时出错#dic = {‘k1’: ‘太白’, ‘k2’: ‘barry’, ‘k3’: ‘白白’, ‘age’: 18}将字典中键含有’k’元素的键值对删除。#正常思路:先找出字典中所有的键,如果键中有k,则将含有’k’元素的键值对删除。dic = {‘k1’: ‘太白’, ‘k2’: ‘barry’, ‘k3’: ‘白白’, ‘age’: 18}for key in dic...
2019-09-21 22:59:34
93
原创 安装虚拟环境
查看系统是否安装了virtualenvvirtualenv --version安装虚拟环境sudo pip install virtualenvsudo pip install virtualenvwrapper创建虚拟环境mkvirtualenv flask_py(自定义文件名即可,此处为flask_py)安装完成虚拟环境后,若提示找不到mkvirtualenv命令,须配置环...
2019-08-26 21:52:54
46
原创 Python 字符串前面加u,r,b,f的含义
1、字符串前加 u例:u"我是含有中文字符组成的字符串。"作用:后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。2、字符串前加 r例:r"\n\n\n\n” # 表示一个普通生字符串 \n\n\n\n,而不表示换行了。作用:去掉反斜杠的转义机制。(特殊字符:即那些,反斜杠加上对应字母,表示对应的特殊含义的,比...
2019-08-23 11:08:48
43
原创 糗事百科爬虫
python糗事百科爬虫爬取url:https://www.qiushibaike.com/hot/此网页爬取分析时选取网页特定元素进行爬取,需了解xpath的用法和lxml库的用法# coding=utf-8from lxml import etreeimport requestsimport jsonclass QiubaiSpider: def __init__...
2019-04-14 10:39:04
129
原创 豆瓣电影爬虫
python豆瓣电影爬虫爬取网址:https://movie.douban.com/tag/#/?sort=U&range=0,10&tags=美国我们爬取的内容为文本,爬取前我们需要进行网页的分析如图所示:我们可以看到我们的主要爬取数据存储在响应的其中一个页面中具体怎么查看和分析目前不做介绍了。# coding=utf-8from parse import pars...
2019-04-14 09:59:39
461
原创 2018北邮网研机试
2018北邮网研机试problemA:题目:类似超市结账,计算购买的商品的总价格。输入:第一行为测试数据组数 T(0< T <= 10) 每组数据第一行为购买商品的种类 n,接下来 n 行,每行两个数据,第一个为商品价格,第 二个为商品数量,价格为实型。输出:每一行输出相对应数据的总价值,保留两位小数。测试数据:221.00 20.50 21100.0...
2019-03-25 21:33:29
228
原创 约数的个数
约数的个数#include<iostream>#include<vector>#include<algorithm>#include<string>#include<sstream>using namespace std;int calMax(int x){ int result=0; int i=1; for(i=1...
2019-03-20 12:10:07
94
原创 北邮OJ虚数
虚数利用大根堆题目描述一个复数(x+iy)集合,两种操作作用在该集合上: 1、Pop 表示读出集合中复数模值最大的那个复数,如集合为空 输出 empty ,不为空就输出最大的那个复数并且从集合中删除那个复数,再输出集合的大小SIZE; 2 Insert a+ib 指令(a,b表示实部和虚部),将a+ib加入到集合中 ,输出集合的大小SIZE; 最开始要读入一个i...
2019-03-16 17:33:44
126
原创 北邮OJ打牌
打牌题目描述牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌。 规则:出牌牌型有5种 [1]一张 如4 则5...9可压过 [2]两张 如44 则55,66,77,...,99可压过 [3]三张 如444 规则如[2] [4]四张 如4444 规则如[2] [5]五张 牌型只有12345 23456 34...
2019-03-16 11:24:05
75
原创 北邮OJ树查找
北邮OJ树查找题目描述有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。输入描述:输入有多组数据。每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度。输出描述:输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没有空格。示例1输入41 2 3 42输出2 3#inc...
2019-03-16 11:11:25
82
原创 递归的那些事
斐波那契数列#include<stdio.h>int fi(int n){ if(n==1||n==2) return 1; else return fi(n-1)+fi(n-2); //递推式}int main(){ int n; while(scanf("%d",&n)!=EOF){ printf("%d\n",fi(n)); } return 0...
2019-03-10 21:56:41
53
原创 素数环
素数环题目:给定1到n的数字中,将数字依次填入环中,使得任意相邻的数字之和为素数。要求第一个数为1,输入的数n为1<n<17#include<stdio.h>using namespace std;int ans[22]; //保存环中的每一个被放入的数bool hash[22]; int n;//判断一个数是否为素数,输入不大于16,故两数之和必在该数...
2019-03-10 12:32:56
119
原创 汉诺塔
汉诺塔改编#include<stdio.h>long long F(int num){ //递归函数,返回值较大时使用long long类型 if(num==1) return 2; else return 3*F(num-1)+2; }int main(){ int n; while(scanf("%d",&n)!=EOF){ printf("%l...
2019-03-10 12:14:12
45
原创 百鸡问题
题目描述:用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。编程求解x,y,z所有可能解。输入描述:测试数据有多组,输入n。输出描述:对于每组输入,请输出x,y,z所有可行解,按照x,y,z依次增大的顺序输出。输入:40输出:x=0,y=0,z=100x=0,y=1,z=99x=0,y=2,z=98x=1,y=...
2019-03-08 18:22:33
744
空空如也
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝