- 博客(44)
- 收藏
- 关注
原创 nvdia triton server运行pt文件
triton server默认都是tensorrt推理。但也会出现有操作不支持,导致无法转模型为engine的情况。可以选择直接运行pytorch的pt文件,以下为操作步骤。1.pytorch后端环境编译步骤原理是使用 pytorch C++ API运行pt文件模型。安装依赖项apt-get install patchelf rapidjson-dev python3-dev构建NGC 的 PyTorch 容器。例如,构建一个使用 NGC 21.02 版本的 PyTor.
2021-08-20 14:48:41
1187
原创 unet pytorch源码分析
https://github.com/milesial/Pytorch-UNet网络整体结构代码""" Full assembly of the parts to form the complete network """import torch.nn.functional as Ffrom .unet_parts import *class UNet(nn.Module): def __init__(self, n_channels, n_classes, bil..
2021-05-24 17:58:35
2678
原创 detectron2 安装配置
安装前准备python ≥3.6 PyTorch ≥ 1.5python3可查看python版本pip list可查看pytorch版本gcc和g++ 1 sudo apt-get install build-essential 查看cuda 版本是否与torch版本对应,如不对应则切换cuda版本 1 2 3 sudo rm -rf /usr/local/cuda #删除之前的软连接 sud
2021-05-11 16:56:36
233
原创 问题解决心路历程:yolov4 tesnorrt client 运行yolov5engine时预测输出不对
经过同事提醒发现是预处理的问题。yolov4def preprocess(image,input_height,input_width): image = cv2.resize(image, ( input_width,input_height)) image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) image = np.transpose(np.array(image, dtype=np.float32, order=..
2021-05-11 09:31:58
352
原创 docker file 编写教程
docker build命令用于从Dockerfile构建映像。-f :指定要使用的Dockerfile路径;--tag, -t:镜像的名字及标签;示例:docker build -f /path/to/a/Dockerfiledocker build -t SOLO docker/docker file结构FROM:指定基础镜像,必须为第一个命令FROM pytorch/pytorch:1.3-cuda10.1-cudnn7-de...
2021-05-11 09:31:33
680
原创 阈值分割算法效果测试
直方图阈值分割一般图像都有双峰性,一个峰是前景一个是后景。一般取这两个峰值之间的最小值为图片的二值化的阈值从而二值化图片值得一提的是,对于任何一张图像,它的直方图中如果存在较为明显的双峰,用直方图分割技术法可以达到很好的效果,否则,达到的效果会很不理想。所以建议先绘制直方图看看。import numpy as npimport cv2import osdef calcGrayHist(image): ''' 统计像素值 ..
2021-05-11 09:19:26
497
1
原创 问题解决心路历程:tensorrt 与 原模型精度相差过大
今天用pytorch训练了一份resnet18的模型,用于工作服检测。但是把模型转为tensorrt engine部署后,发现运行起来预测结果完全错误。1.一开始以为是过拟合,但是用训练数据预测,发现还是不对。2.这时开始怀疑是自己模型结构哪里写错了,但是编译已经通过了,也就是自己写的tensorrt模型,完美接收了来自pytorch的resnet18的参数。发现自己写的tensorrt版本的resnet结构,输入数据是224*224,pytorch版是128*64。..
2021-05-10 17:16:25
3896
1
原创 开源实例分割软件labelme使用教程
项目源码github源码地址gitee拷贝的源码地址 (上面的加载慢用这个)安装(windows为例)先安装conda,这里推荐minicondaminiconda安装教程见如下文章http://doge.ac.cn/?p=2840安装完毕后用conda安装labelme# python3conda create --name=labelme python=3.6conda activate labelmepip install l..
2021-05-10 17:13:50
670
原创 安装pycocotools报错
报了一长串错Building wheel for pycocotools (setup.py) ... error ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xktd0rpk/pycocotools_12febb60ea2840848..
2021-05-10 17:11:28
3775
原创 git 基础操作合集
1.创建项目1.git init 将此目录转换为git可管理的仓库2.git config --global user.name "xx" git config --global user.email "xx"(都配也行)3.git add . 文件添加到暂存区(stage)4.git commit -m "xxx" 文件提交至本地仓库2.上传更改git statusgit add .git commit -m ""git push origin maste..
2021-05-10 17:10:19
75
原创 selenium class_name带空格,无法获取到元素
错误原因元素的class_name带空格,无法通过之前的方法获取到元素今天写一个网站自动化测试脚本时driver.find_elements_by_class_name('el-tooltip.operator.open')[2].click()driver.find_elements_by_css_selector('el-tooltip operator open')[2].click()driver.find_elements_by_css_selector('el-..
2021-05-10 17:08:33
1018
原创 opencv puttext 中文乱码解决方法
解决方法先转成PIL的图片格式,再用PIL绘制字体,然后再转回opencv图片格式定义方法from PIL import Image, ImageDraw, ImageFontdef cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20): if (isinstance(img, np.ndarray)): # 判断是否OpenCV图片类型 img = Image..
2021-05-10 17:07:12
1988
2
原创 urllib防超时,递归下载图片
import urllibimport urllib.request as requestdef download(url, name): try: urllib.request.urlretrieve(url, name) except Exception as e: print(e) download(url, name)with open("hk.txt") as f: url_list = f.read().sp.
2021-05-10 17:05:30
92
原创 pytorch tensorboard使用的简单教程
1.编写先初始化from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter(comment=f'LR_{lr}_BS_{batch_size}_SCALE_{img_scale}')散点图writer.add_scalar('Loss/train', loss.item(), global_step) #loss 直方图writer.add_histogram('w..
2021-05-10 17:00:28
1183
原创 这些年炼丹时的低级失误,持续反省中
预处理1.ImageFolder读取时需要补零ImageFolder 读取顺序之坑 – 柴犬的犬舍 (doge.ac.cn)2.通道转换用transpose,而不是reshape(我是傻逼)np.reshape()和np.transpose() – 柴犬的犬舍 (doge.ac.cn)3.pytorch ToTensor对部署的影响transforms.ToTensor()操作之后,图像会从[0, 255] -> [0.0,1.0]部署时需要..
2021-05-10 16:58:17
103
原创 pyqt5 pyuic生成py文件报错Error in input file: no element found: line 1, column 0
这一步一定要选中ui文件之后再点pyuic,不然会报错这时候运行的命令是pyuic5.exe main.py -o main.py而不是pyuic5.exe xxx.py -o xxx.ui(因为很多人pyuic的arguments都是$FileName$ -o $FileNameWithoutExtension$.py,即通过xxx.ui生成xxx.py)报错是提示找不到ui文件...
2020-08-26 15:39:15
6644
1
原创 在训练CNN时,loss稳定在-log(类别数)
在训练CNN时,loss稳定在log(类别数),是存在什么问题? 比如说二分类误差稳定在0.69,十分类误差稳定在2.302首先,0.69, 2.302表明网络就是在随机的猜,这里一般都是因为用了交叉熵损失函数这里yi往往是1,最后就是1*log(yhat)而如果是随机猜,预测值会接近1/n,即最后为log(1/n)=-log(n)1.检查是否代码问题,是否有bug;调参数、learning rate等看看,也很有可能先开始梯度太大,weight跑到了很远的地方(或者直接跑到了
2020-08-05 16:04:58
1100
原创 Python __call__详解
问题今天看自己调用EfficientNet的源码发现了这么一段class DogeNet(nn.Module): def __init__(self): super(DogeNet, self).__init__() model = EfficientNet.from_pretrained('efficientnet-b4') model._fc = nn.Linear(1792, 2) self.effici..
2020-08-04 16:15:03
854
原创 RCNN家族简短总结
传统算法全部滑窗一遍太慢,所以有了RCNN,先筛选一部分滑窗的候选区,再全都过卷积分类回归。RCNN每个候选区都卷积一次太慢,所以Fast RCNN直接先卷积,然后在特征图上用selective search找候选区域,然后再分类回归。Fast RCNN找候选区域不是神经网络算法,太慢了,所以有了Faster RCNN,用卷积神经网络找候选区域。...
2020-07-31 14:46:30
168
原创 感受野的计算
感受野的概念之前提到,vgg的主要亮点在于堆叠多个3x3卷积核来代替7x7的卷积核减少了所需的参数量,在保持感受野相同的情况下,提升了网络的深度,在一定程度上提升了神经网络的效果这里输出层层感受野指的是该层每个单元对应输入图像上的区域大小感受野大小计算RFi+1为下一层卷积层感受野,RFi为当前卷积层感受野大小。k为卷积核大小,s为步长。这里和步长相关,是因为如下图所示。如果,以卷积核正中间的点为中心。周围的点所对应的区域,都是分别往不同方向移动步长个单位。..
2020-07-25 20:49:30
1016
原创 maxout对参数量的影响
相当于在输出前面又加了一层,该层有K个神经元,最后只输出这些神经元中最高的值即z1=w1*x+b1z2=w2*x+b2z3=w3*x+b3z4=w4*x+b4z5=w5*x+b5out=max(z1,z2,z3,z4,z5)缺点会直接导致参数量变为k倍,现在已经很少有用的,基本被relu替代...
2020-07-25 20:49:00
181
原创 单个卷积层的计算量为多少
最终一个卷积核的卷积如下所示(下式最主要的是按照特征图上每个点的形成来理解)比如一张图时224*224*3的图,一个卷积层有256个3*3的卷积核在它上面进行卷积,每个卷积核的每次卷积都会进行如上图的一次操作,即k1x1+k2x2+k3x3+......k9x9+b,一个卷积核有3*3个点,因此最终每个卷积核在每个通道上进行9次卷积操作,而输入的图像有三个通道,最终进行了3*3*3次卷积,一共有256个卷积核,最终为3*3*3*256验算以上理论:以alexnet第...
2020-07-25 20:48:01
874
原创 alexnet和vgg为什么参数量过多
卷积层以上图的模型为例,卷积层的参数个数只有(卷积核的宽*卷积核的高+1)*输出通道数,其中括号内卷积核的宽*卷积核的高是属于权重值的,1是属于偏置值的。下面只用权重估算如第一层卷积层只有7*7*3*64=9408个参数第二层卷积层只有3*3*64*192=110592个参数全连接层而全连接层则是将延展成一维的特征图维度为(特征图宽*特征图高*输入通道数)*1直接乘上维度为 (特征图宽*特征图高*输入通道数)*全连接层输出通道数 的矩阵 ,最终这个矩阵参数量为(特...
2020-07-25 20:47:13
1106
原创 pytorch ImageFolder 读取顺序之坑
ImageFolder读文件如果读的是1.jpg,2.jpg........1000.jpg这种,千万要注意最后读取顺序,因为肯定会读成这样这时候就需要写个脚本给他补零,修正读取顺序import ospath = 'test/AD&CN'file_list = os.listdir(path)for file in file_list: # 补0 10表示补0后名字共10位 filename = file.zfill(10) # print(filena
2020-07-25 20:44:00
2070
4
原创 tensorrt7.0在windows环境下安装方式(来自nvidia官方文档精简后)
CUDA 10.2或11.0 RC,cudnn8.0,以上都安装完成的情况下开始安装tensorrt。怎么安装参考之前安装pytorch的教程。先去nvidia官网下载Windows版本匹配的TensorRT zip文件。https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#downloading解压zip文件1.7.x.x.x(含TensorRT版本)2.cuda-x.x和c..
2020-07-24 10:50:37
2297
1
原创 l2正则化系数过高导致梯度消失
lamda = 3 # 正则化惩罚系数 w_grad=(np.dot(self.input.T, grad) + (self.lamda * self.w))/self.batch_size这里把正则化系数设置为3如果采用4层relu隐藏层的神经网络,将会直接导致梯度消失1%| | 2/200 [00:17<28:09, 8.53s/it]loss为0.23035...
2020-04-05 17:29:22
1694
原创 numpy手写mlp
直接提供代码一共分四个文件trainer.py用于接受参数开始训练layer.py用于定义每个层的属性和功能net.py用于构建整个神经网络mlp用于读取mnist数据集并进行训练记得把trainer,layer,net这三个文件拷到同一个文件夹下,方便mlp文件调用这三个文件的类DogeTrainer.pyfrom dogel...
2020-04-02 14:28:20
2122
1
原创 numpy手写softmax回归
softmax诞生原因线性回归主要用于连续值预测,即回归问题,比如判定一个东西是鸡的概率是多少而当模型需要预测多个离散值时,即分类问题,比如判定一个东西是鸡还是鹅还是鸭此时就需要多个输出单元,并且修改运算方式从而方便预测和训练,这也就是softmax层诞生的原因这里使用的是minist手写数字识别数据集1.首先通过Pytorch读取数据集def load_data(): tra...
2020-04-01 14:49:26
1507
原创 Zigbee 8051环境 开发笔记- 1 环境配置
首先是安装IAR 开发环境,全套包括IAR注册机都在https://pan.baidu.com/s/1ge4Nomn#list/path=%2F 安装完之后打开 第一步 project - create new project ,然后选择选择Empty project,单击OK保存,保存完之后,就能看到工程,然后File→Save W
2017-07-11 11:22:44
488
原创 山东科技大学小学期数据库大作业
一天写完了。。。。。挂这里就当是造福后人了,虽然写的这么乱估计也没什么人看,就当是见笑了选题:¨CREATE TABLE 表名> (列名>数据类型>[列完整性约束条件>][,列名>数据类型>[列完整性约束条件>]…][,表完整性约束条件>])¨ALTER TABLE 表名> [ADD 新列名>数据类型>[列完整性约束>]] [DROP列完整性约束名>][MODIFY 列名>
2017-06-15 17:03:42
3923
3
原创 python 将py脚本打包生成exe可执行文件
python 环境 2.7.4最终效果如下使用 了 pyinstaller 这里打包一个exe只需两步第一步python 环境下 命令行直接 pip install pyinstaller第二步下载完成后,命令行pyinstaller -F 文件名 即可生成exe文件,文件一般在c/user/ 你的用户名 /dist/下如果要修改图标
2017-06-15 16:20:45
3500
原创 android studio Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]
First,when i found this problem when i ran my application with Android Studio.Then,i clicked "OK".But i failed in installing my application .So i tried to solve the problem in five wa
2017-06-08 15:23:19
438
原创 补5-22博客 获取点击坐标并将控件移动到点击位置
package doge.healthcare.activity;import android.content.Context;import android.content.SharedPreferences;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import
2017-05-23 10:41:41
608
1
原创 android 创建底部导航栏 (radiogroup+fragment)
//原本的类package doge.healthcare.Utils;import android.app.Activity;import android.app.Fragment;import android.app.FragmentTransaction;import android.content.Context;import android.graphics.drawabl
2017-05-21 21:13:20
615
原创 android中国天气网api获取天气信息并解析
package doge.healthcare.Utils;import android.os.Handler;import android.os.Message;import android.util.Log;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;imp
2017-05-20 17:05:42
2118
原创 android shape 属性详细解析(mmp这波整理完以后都不用麻烦了)
<corners android:radius="180dp" android:topLeftRadius="180dp" android:topRightRadius="180dp" android:bottomLeftRadius="180dp" android:bottomRightRadius="180dp"/
2017-05-19 16:57:32
871
原创 Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan r
安卓6.0多了新的特性,也就是打开app时,经常会提醒你是否允许xx应用获取xx权限,这就是新特性的表现。也就是说,有的权限,光是在manifest里获取还不够,还要让用户手动允许才能获得这项权限如果只在manifest里面写,而不让用户手动获取,则会崩溃并报类似Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permis
2017-05-18 22:08:54
5793
1
原创 android fragment 生命周期引起的错误及思考
今天调试app时,发现了一个bug,即自己的app中有一个控件是隐藏的,点击按钮后展开,而我在这个fragment 的onstart 函数中加入了对这个控件的长度的测量,代码如下:int w1 = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int h1 = View.Measure
2017-05-17 09:46:27
343
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人