技术教程
文章平均质量分 64
工作学习中遇到的技术问题总结
Briwisdom
这个作者很懒,什么都没留下…
展开
-
Ubuntu20.04部署TVM流程及编译优化模型示例
记录自己安装TVM的流程,以及一个简单的利用TVM编译优化模型示例。原创 2023-11-28 09:59:23 · 1025 阅读 · 0 评论 -
ubuntu20.04安装tensorRT流程梳理
梳理最近在ubuntu上安装tensorRT的流程,记录一些踩坑原创 2023-11-26 23:27:18 · 833 阅读 · 0 评论 -
图形编程概念—显卡/GPU是如何工作的?
计算机显卡在设计之初主要是为了解决实时渲染三维图像的问题,这里的实时指的是能够以很快的速度生成图像,而不是显示播放已经预先录制好的视频。实时渲染对于任何一个游戏都至关重要,因为计算机屏幕显示的图像,都是对玩家操作的及时反馈。对于能否实时的生成图像,就涉及到一个计算量的问题,任何在屏幕中显示的三维物体,首先都要经过重重的坐标变换,根据观察的角度,以正确的透视投影显示出来,并且物体的表面会受到环境中各种光线的影响,呈现不同的颜色和各种的阴影。这包括光线的漫射、折射、投射、散射等。...原创 2021-12-26 18:07:04 · 4977 阅读 · 0 评论 -
python的CUDA加速编程科普
目录1.什么是CUDA?2.适用设备:3.GPU的硬件结构4.CUDA的线程层次5.CUDA程序的编写6.CUDA线程索引7.实际编程7.1 向量相加7.2 图像亮度调整7.3 矩阵相乘7.4 卷积操作对图像进行模糊1.什么是CUDA? CUDA Compute Unified Device Architecture CUDA C/C++ 基于C/C++的编程方法 支持异构编程的扩展方法 简单明了的APIs,能够轻松的管理存储系统原创 2021-12-26 22:39:05 · 10740 阅读 · 2 评论 -
opencv源码之sobel的核模板
1, 如果图像四周不补pad, 滤波后的图像尺寸会变小,为了让滤波后图像尺寸不变,opencv函数都会在图像四周补pad ,有如下几种pad方式,默认采用BORDER_REFLECT_101的方式。opencv实现的Sobel的核模板的生成是一个单独的函数,可以观察到不同的k_size时候,具体的核函数是什么。当ksize=3,(dx,dy)=(1,0)当ksize=3,(dx,dy)=(0,1)当ksize=3,(dx,dy)=(1,1)1, 计算kerel模板值。原创 2022-12-27 21:15:52 · 917 阅读 · 0 评论 -
常见的颜色模型与转换公式
在RGB颜色模型中,所有的颜色都是由这三种颜色通过不同比例的混合得到,如果三种颜色分量都为0,则表示为黑色,如果三种颜色的分量相同且都为最大值,则表示为白色。在这个模型的基础上增加第四个通道即为RGBA模型,第四个通道表示颜色的透明度,当透明度都是1的时候,RGBA模型就会退化成RGB模型。在模型中L表示亮度(Luminosity),a和b是两个颜色通道,两者的取值区间都是由-128到+127,其中a通道数值由小到大对应的颜色是从绿色变成红色,b通道数值由小到大对应的颜色是由蓝色变成黄色。原创 2022-12-25 22:15:46 · 1126 阅读 · 0 评论 -
Opencv之Mat常用类成员(一篇就够了)
opencv的Mat是一种常用的数据容器。本文总结了经常使用的类成员及使用示例。包含:Mat的创建,访问,数据类型,step原创 2022-11-26 23:03:46 · 2037 阅读 · 0 评论 -
cifar10数据集下载及图片格式解析
CIFAR-10 是由 Hinton 的学生 Alex Krizhevsky 和 Ilya Sutskever 整理的一个用于识别普适物体的小型数据集。一共包含 10 个类别的 RGB 彩色图 片:飞机( a叩lane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车( truck )。图片的尺寸为 32×32×3 ,数据集中一共有 50...原创 2022-05-15 18:10:18 · 10623 阅读 · 2 评论 -
哈希函数与一致性哈希
什么是 HashHash(哈希),又称“散列”。散列(hash)英文原意是“混杂”、“拼凑”、“重新表述”的意思。在某种程度上,散列是与排序相反的一种操作,排序是将集合中的元素按照某种方式比如字典顺序排列在一起,而散列通过计算哈希值,打破元素之间原有的关系,使集合中的元素按照散列函数的分类进行排列。在介绍一些集合时,我们总强调需要重写某个类的 equlas() 方法和 hashCode() 方法,确保唯一性。这里的 hashCode() 表示的是对当前对象的唯一标示。计算 hashCode原创 2022-04-12 21:39:29 · 348 阅读 · 0 评论 -
python读取二进制文件(浮点数)
如题,python读取一个存着浮点数的二进制文件。import numpy as npimport structimport sys# 加载测试数据fpath='./data.bin'f = open(fpath,'rb')nums=int(os.path.getsize(fpath)/4) # 4 是浮点数字节data = struct.unpack('f'*nums,f.read(4*nums))f.close()data = np.array(data).reshape(-原创 2021-11-10 18:07:41 · 2969 阅读 · 0 评论 -
python读取.rgb后缀文件
python读取图像数据,文件是.rgb后缀。代码如下:import cv2 as cvimport numpy as np f = open("00000.rgb", "rb")data = f.read()f.close()data = [int(x) for x in data]# 图像尺寸是需要预先知道的data = np.array(data).reshape((540, 960, 3)).astype(np.uint8)cv.imshow("data", data)cv原创 2021-05-21 18:07:58 · 1364 阅读 · 0 评论 -
Keras训练模型的保存和重载(含示例)
当我们在训练一个大型数据集时候,如果短时间不能训练完,突然的断电等意外情况会使我们的训练工作全部半途而废,那么养成实时保存模型的习惯则相当必要,这样每次训练我们可以接着上次运行的模型继续运行,节省不必要的时间花费。思想训练开始时候加入判断语句,判断是否有已经存在的保存模型文件:如果有则直接载入模型即可;如果没有则是第一次训练,载入你的模型架构。训练完成时候,给一个保存路径,加入一句sa...原创 2018-12-19 18:41:23 · 3988 阅读 · 2 评论 -
Keras中间层输出的两种方式,及特征图可视化
训练好的模型,想要输入中间层的特征图,有两种方式:1. 通过model.get_layer的方式。创建新的模型,输出为你要的层的名字。创建模型,debug状态可以看到模型中,base_model/layers,图中红框即为layer名字,根据你想输出的层填写。最后网络feed数据后,输出的就是中间层结果。2. 通过建立Keras的函数。from keras import ba...原创 2018-05-13 23:06:10 · 25220 阅读 · 28 评论 -
word超出纸张打印范围
打印一个含很多表格的文档,正常A4纸打印被提示内容超出打印纸张范围,网上搜了好久说在word页面设置里调整页边距和纸张大小的方法,都没有解决,这个花费我60分钟左右。准备放弃的时候突然想到转换成pdf格式试一下,结果居然成功了,这个过程费时不超过一分钟。特将经验分享,希望能够帮到。 ...原创 2017-08-11 16:14:14 · 5277 阅读 · 0 评论 -
Docker制作镜像的两种方式
Docker制作镜像可以有两种方法,一种是基础方法:编写Dockerfile;另一种是基于已有的镜像,进入容器里面再搭建所需环境,然后退出,提交成新的镜像。docker commit IMAGE_ID new_IMAGE-NAME...原创 2019-11-12 10:39:13 · 412 阅读 · 0 评论 -
Docker中<none>镜像的来历及快速删除操作
删除:docker rmi -f $(docker images | grep "none" | awk '{print $3}')来历:在docker反复build一个Dockerfile,并且使用相同tag(或者不用tag)会存留很多none镜像。第一次build生成一个image id, 再次build后,会重新生成一个image id, 命名和上一个一样,所以上一个镜像的tag和...原创 2019-11-05 10:31:23 · 1249 阅读 · 0 评论 -
linux将普通用户加入docker组,使其能直接运行docker命令
正常配置好docker之后,每次运行docker命令需要在前面加:sudo,如:sudo docker images。通过将当前用户添加进docker组,以后可以直接运行(docker images)。sudo groupadd dockersudo gpasswd -a ${USER} docker重启docker服务,并退出当前用户重新登陆sudo service docke...原创 2019-10-28 11:00:32 · 3026 阅读 · 1 评论 -
docker19.03+调用宿主机nvidia显卡,配置默认runtime=nvidia
如果想在容器里调用宿主机的nvidia显卡加速运算,docker 19.03+版本摒弃了之前的nvidia-docker2的实现方式,docker 运行镜像时候只需在run 后加--gpus all的参数,但是在docker-compose里确没有--gpus=all或者runtime=nvidia的参数让docker调用nvidia显卡,之前还以为了nvidia-docker官方没有跟上dock...原创 2020-01-20 18:14:08 · 14127 阅读 · 8 评论 -
ubuntu16.04更新nvidia驱动的两种方法(方法2直接可用nvidia-smi显示)
ubuntu系统当需要搭建深度学习环境,调用nvidia GPU显卡驱动时候,更新显卡驱动问题一直不可避免,当在终端运行nvidia-smi显示出显卡信息的那一刻,才算彻底松了一口气。前后陆陆续续搞过ubuntu显卡驱动很多次,发现显卡驱动的问题越来越简单了。简单记录下今天的经历,供参考。第一种,利用ubuntu系统Software & Updates自动更新。更新系统软件源信息...原创 2020-01-17 18:21:26 · 19287 阅读 · 8 评论 -
window下安装 jupyter notebook,以及使用快捷键指南
Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。——Jupyter Notebook官方介绍完成效果如图windows下安装步骤1. 先安装好安装python2.打开cmd命令行,运行:pippip install jupyter3. 在cmd命令行,运行: jupyter notebook...原创 2020-04-23 23:18:43 · 475 阅读 · 0 评论 -
数据分析可视化利器的简单使用示例-——seaborn
seaborn是一个建立在matplot之上,可用于制作丰富和非常具有吸引力统计图形的Python库。Seaborn库旨在将可视化作为探索和理解数据的核心部分,有助于帮人们更近距离了解所研究的数据集。无论是在kaggle官网各项算法比赛中,还是互联网公司的实际业务数据挖掘场景中,都有它的身影。可视化所需的包与数据导入:import numpy as npimport pandas as...原创 2020-04-19 23:36:37 · 420 阅读 · 0 评论 -
k8s的Pod内容器互相访问——容器内使用python操作同Pod的mysql容器
目录一、容器外部访问容器内部服务1. 使用hostNetwork参数(容器内部服务与宿主机同一网段)2. 使用hostPort参数(将容器内端口暴露出来)3. 使用NodePort参数4. 使用LoadBalancer参数二、容器内部服务访问外部服务1. 使用hostNetwork参数(Pod与宿主机在同一网段)2. 使用endpoints组件序言研究k8s...原创 2020-03-31 20:37:23 · 10590 阅读 · 0 评论 -
Visual Studio 2013运行C/C++程序
0 前言开始学习C/C++了,肯定首先要找一个能运行程序的软件,很多人都有不同的推荐,如devc++、codeblocks,VC++6.0,Visual Studio 20XX,我们本科学习数据结构时候,老师推荐的就是VC6.0,这个是比较经典的工具吧。我个人感觉Visual Studio是在做大型工程项目时候的最佳选择,也有很多人推荐。我在安装VC++6.0时候不知道什么原因出错了,而电脑上...原创 2018-10-30 19:58:33 · 12307 阅读 · 0 评论 -
python 读取图像的几种方式
1. skimagefrom skimage import ioimg=io.imread('d:/dog.jpg',as_grey=True)#显示图像io.imshow(img)#保存图像io.imsave('d:/cat.jpg',img)2. PIL中的Image函数Note:读取出来不是array格式from PIL import Image I = I...原创 2018-10-22 16:22:46 · 898 阅读 · 0 评论 -
服务器从零搭建GPU版本的TensorFlow环境
系统信息:Ubantu18.04,GPU:Tesla P1001. 使用Xshell 登录服务器2. 安装nvidia驱动根据服务器nvidia信息,下载对应版本的驱动(http://www.nvidia.com/Download/index.aspx?lang=en-us)查看nvidia信息的命令lspci | grep -i nvidia将下载好的驱动文...原创 2018-09-27 23:31:58 · 2421 阅读 · 0 评论 -
服务器配置jupyter步骤
1. 安装jupyterpip install jupyter2. 生成配置文件jupyter notebook --generate-config3. 打开python,生成秘钥from notebook.auth import passwdpasswd()然后设置登录密码,生成秘钥,并复制你的秘钥秘钥开头:sha1……4. 修改配置文件vim ~/...原创 2018-09-27 18:39:03 · 2221 阅读 · 1 评论 -
ENVI5.2裁剪遥感图像指定区域
我需要在遥感图像中裁剪出我选定的属于海洋中尺度涡的图片,在envi classic版本中很不方便,故结合网上查询总结了一下过程,方便大家参照。1. 首先打开你要裁剪的遥感图像。找到ROI工具,在快捷栏中直接找到roi工具(图1),单击;或者通过File---new---Region of Interest(图2)。 图 1 图 ...原创 2016-11-11 18:32:29 · 83398 阅读 · 8 评论 -
pycharm常用快捷键(备份)
作为一名程序员,写代码时候用快捷键还是非常必要的,但是长时间不用有些也是会忘记的……好记性不如烂笔头Ctrl + Alt + L 代码格式化Ctrl + Alt + O 优化导入(去掉用不到的包导入)Ctrl + / 行注释 、取消注释Shift+Enter 跳转到下一行编辑(另起一...原创 2019-03-08 15:22:47 · 716 阅读 · 0 评论 -
TensorFlow和keras中GPU使用的设置
1. 训练运行时候指定GPU运行时候加一行代码:CUDA_VISIBLE_DEVICES=1 python train.py2. 运行过程中按需或者定量分配GPUtensorflow直接在开启Session时候加几行代码就行,而Keras指定GPU,并限制按需用量和TensorFlow不太一样,因为keras训练是封装好的,不好对Session操作。如下是两种对应的操作。ke...原创 2018-12-27 20:26:29 · 4910 阅读 · 0 评论 -
ubantu16.04的多个CUDA版本切换
链接:https://blog.csdn.net/tunhuzhuang1836/article/details/79545625#commentsedit每次执行后,必须更新bashrc: source ~/.bashrc。 编辑bashrc的命令:gedit ~/.bashsrsudo rm -rf /usr/local/cuda #删除之前创建的软链接sudo ln -s /u...原创 2019-08-13 16:15:45 · 296 阅读 · 0 评论 -
keras自定义损失函数并且模型加载的写法
keras自定义函数时候,正常在模型里自己写好自定义的函数,然后在模型编译的那行代码里写上接口即可。如下所示,focal_loss和fbeta_score是我们自己定义的两个函数,在model.compile加入它们,metrics里‘accuracy’是keras自带的度量函数。def focal_loss(): ... return xxdef fbeta...原创 2019-05-15 11:49:24 · 4385 阅读 · 14 评论 -
python批量将数据集按比例分成训练集和验证集
深度学习实验中,为了更好的评估模型性能,往往需要从原始训练数据集中取出一部分作为验证集,完全不参与模型的训练。该代码将实现从一批图像数据集文件夹中,按照比例随机取出一部分数据作为验证集数据。 下图是本例子的文件夹结构,原来train文件夹下是5个以图像类别命名的文件夹,各个子文件夹是图像样本,需要建立一个va文件夹用来存放取出的图像数据,val文件夹下的子文件夹运行代码时...原创 2019-05-12 17:22:22 · 8719 阅读 · 12 评论 -
k8s集群给pod指定运行的node
k8s集群的yaml文件,需要指定pod在哪个node上面运行很简单,可以有两种方法。1. 强制约束Pod调度在指定Node节点上Pod.spec.nodeName2. 通过label-selector机制选择节点Pod.spec.nodeSelector查询node的label情况命令:kubectl get node --show-labels...原创 2020-01-10 18:16:06 · 4709 阅读 · 0 评论 -
virtualbox设置虚拟机ip,xshell可连接
virtualbox安装了centOS 7的虚拟机,设置可以用xshell访问的ip方式有两种,一种是直接设置静态ip的方式;另一种用物理机ip+端口的端口转发模式。第一种,静态ip已知物理机(宿主机)信息ip:192.168.100.xsubnet mask:255.255.254.0gateway:192.168.100.254注意:物理机的ip和mask可以直接用ifc...原创 2019-12-31 17:44:21 · 1686 阅读 · 0 评论 -
基于virtual box虚拟机的k8s集群部署全流程
预准备安装virtual box下载centOS7镜像(阿里云网站下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/)。我下载的版本是 CentOS-7-x86_64-DVD-1908.iso一、安装配置虚拟机打开VirtualBox,选择新建输入虚拟机名称,类型,版本内存设置4G动态分配,文件...原创 2020-01-03 18:59:12 · 2429 阅读 · 0 评论 -
docker镜像安装ssh配置与登陆方式+apt安装java
docker镜像安装ssh配置与登陆方式进入镜像容器,并将ssh的22端口映射到宿主机的端口docker run -it -p 10022:22 Image_name使用apt安装ssh服务apt-get install -y openssh-server设置容器ssh登陆密码以及修改ssh配置文件passwd # 设置登陆密码vim /etc/ssh/ssh...原创 2019-12-09 17:35:43 · 604 阅读 · 0 评论 -
keras图片读入预处理的两种方式
跑实验时候,要准备自己的数据集,keras的接口方式还是比较友善的,对图像的数据预处理有两种方式:一种是.flow(),另一种是.flow_from_directory(directory)。关键导入包:import kerasfrom tensorflow.keras.preprocessing.image import ImageDataGeneratorimport keras...原创 2019-11-24 21:04:33 · 1116 阅读 · 0 评论 -
快速了解软件测试全貌
目录软件测试概述兼容性测试安全性测试可用性测试 & 逻辑功能测试黑盒测试与白盒测试软件测试的分类单元测试集成测试系统测试和验收测试回归测试冒烟测试软件测试概述需求—方案—代码实现—执行—产出报告软件测试指标:功能测试,性能测试,验收测试,接口测试软件测试的指标主要是根据需求文档和行业标准而定。功能测试的指标,完全是由需求文...原创 2020-04-29 15:57:05 · 482 阅读 · 2 评论 -
进程通信简单代码示例-(无名管道,有名管道,共享内存,消息队列,信号量)
目录无名管道有名管道消息队列信号量共享内存进程间通信技术包括消息传递、同步、共享内存和远程过程调用。IPC是一种标准的Unix通信机制。IPC的方式通常有管道(包括无名管道和有名管道)、消息队列,信号量、共享存储、Socket、Streams等,其中Socket和Streams支持在不同主机上的两个进程IPC无名管道特点:1) 半双工的(即数据只能在一个方向上流动),具有固定的读端和写端;2) 只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进...原创 2020-12-14 00:36:57 · 364 阅读 · 0 评论 -
快速安装tensorflow(国内镜像地址)
使用默认pip install tensorlfow经常 出现速度慢,而且会超时安装失败,这时候就如果用国内镜像地址就不会出现这个问题。pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --upgrade tensorflow-gpu1.5.0 #指定镜像地址安装pip --default-timeout=1000000 install -U -i https://pypi.tuna.tsinghua.edu.cn/simple/原创 2020-09-10 09:51:16 · 10042 阅读 · 1 评论