自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

原创 nvidia docker安装

2. 安装nvidia docker。1.安装docker。3. gpu打进容器。

2024-01-09 11:32:32 500

原创 huggingface 下载大模型

大模型下载方法

2023-11-03 17:04:50 1407

原创 ubutnu qt.qpa.xcb: could not connect to display 1

解决办法:export DISPLAY:=1。

2023-07-13 16:23:14 199

原创 堆排序python

堆排序

2022-12-29 17:25:29 149 1

原创 分组卷积与dw卷积

分组卷积、可分离卷积

2022-12-28 15:33:54 1965

原创 免密登录跳板机和linux服务器

scp免密登录跳板机

2022-09-23 14:34:45 758

原创 Linux命令之sed批量替换字符串

批量替换字符串

2022-09-13 15:11:21 9843 2

原创 给图片添加透明水印

透明水印

2022-08-23 20:38:51 1511

原创 kaldi 源码安装

kaldi安装

2022-07-14 14:17:39 930

原创 GCC9.5离线安装

gcc

2022-06-30 15:50:10 2118

原创 文本特征向量抽取及PCA降维

降维

2022-06-02 17:19:12 786 2

原创 多标签分类与binary_cross_entropy_with_logits

1. binary_cross_entropy_with_logits可用于多标签分类torch.nn.functional.binary_cross_entropy_with_logits等价于torch.nn.BCEWithLogitsLosstorch.nn.BCELoss+torch.nn.Sigmoid 等价于torch.nn.BCEWithLogitsLoss在pytorch中torch.nn.functional.binary_cross_entropy_with_log...

2022-04-25 21:14:48 10619

原创 tensorflow获取动态shape

tf.shape(a)和a.get_shape()比较相同点:都可以得到tensor a的尺寸不同点:tf.shape()中a 数据的类型可以是tensor, list, array    a.get_shape()中a的数据类型只能是tensor,且返回的是一个元组(tuple)如果需要根据上一层的动态shape计算当前层的shape,该如何做呢x=tf.placeholder(tf.float32, shape=[None, 227,227,3] )但在运行的时候想知道None到

2022-03-31 15:16:29 2497

原创 GCC安装

1.下载GCC安装包,下载地址如下,选择需要的安装版本:https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/2.解压配置 进入解压目录执行:./configure可能会遇到下面的问题:configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.Try the --with-gmp, --with-mpfr and/or --with-mpc optio.

2022-03-30 17:27:22 4428

原创 scp通过跳板机传输文件

ssh 通过代理机跳转内网proxyjump代理登录跳板机使用proxyjump时,可能会遇到连接中转服务器后报错:channel 0: open failed: administratively prohibited: open failedstdio forwarding failedkex_exchange_identification: Connection closed by remote host这是因为没有指定端口号,需要指定端口号还有可能遇到下面的问题:ssh: Co

2022-02-11 10:44:22 3762

原创 onnx重写输入和输出的维度

onnx模型输入是静态的,比如是1x3x960x960,但是想把输入改成动态输入,相应的输出也得改成动态,以下代码可以修改onnx模型的维度:import onnximport onnx.checkerimport onnx.utilsfrom onnx.tools import update_model_dims model = onnx.load('infer_rec.onnx')# 此处可以理解为获得了一个维度 “引用”,通过该 “引用“可以修改其对应的维度

2021-09-09 14:28:24 7710 4

原创 android cmake踩坑记录

android studio最终正常编译so库的环境配置如下:androi studio 版本:3.5gradle version :5.6.3gradle plugin :3.4.1cmake配置:cmake { path "src/main/cpp/CMakeLists.txt" version "3.10.2"}ndk:android-ndk-r16b问题1:Execution failed for task ':app:generateJsonMo

2021-04-14 15:42:53 480

原创 感受野的计算

感受野的计算感受野(Receptive Field),指的是神经网络中神经元“看到的”输入区域,在卷积神经网络中,feature map上某个元素的计算受输入图像上某个区域的影响,这个区域即该元素的感受野。卷积神经网络中,越深层的神经元看到的输入区域越大,如下图所示,kernel size 均为3×33×3,stride均为1,绿色标记的是Layer2Layer2每个神经元看到的区域,黄色标记的是Layer3Layer3看到的区域,具体地,Layer2Layer2每个神经元可看到Layer1La..

2020-11-21 15:03:58 445

原创 C++多线程编程#pragma omp parallel

通常创建线程通过pthread_create来进行线程创建创建线程下面的程序,我们可以用它来创建一个 POSIX 线程:#include <pthread.h>pthread_create (thread, attr, start_routine, arg) 在这里,pthread_create创建一个新的线程,并让它可执行。下面是关于参数的说明:参数 描述 thread 指向线程标识符指针。 attr 一个不透明的属性对象,可以被用来设置线程.

2020-09-24 11:52:26 22712

原创 JNI如何避免内存泄露

内存泄露主要是申请后没有及时释放导致的,谁申请谁释放是c++必须遵循的重要原则,malloc申请一般通过free进行释放,new申请的内存一般通过delete进行释放,如果不进行释放,内存会逐渐升高,最终无法申请到内存而导致内存泄露1. 哪些需要手动释放? 不要手动释放(基本类型): jint , jlong , jchar 需要手动释放(引用类型,数组家族): jstring,jobject ,jobjectArray,jintArray ,jclass ,jmethodID

2020-09-24 11:19:07 381

原创 Rotate an image without cropping in OpenCV in C++

I'd like to rotate an image, but I can't obtain the rotated image without croppingMy original image:通常使用下面的代码进行crop:#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp&...

2020-09-14 15:32:49 363

原创 如何使用addr2line命令定位程序出错代码所在行号

linux中或者android端使用addr2line命令定位代码出错的代码所在行,但有时候addr2line定位输出为??:?。并不能分析出哪行代码出了问题,例如,addr2line -e a.out 0x4005BDC命令。也可以使用valgrind工具运行此a.out可执行文件时获取此地址以查找内存泄漏。addr2line - 将地址转换为文件名和行号。addr2line常常会遇到下面的情况:$ addr2line -e a.out 0x400442 #offset in the `__

2020-08-06 16:32:41 6531

原创 pytorch模型转onnx

pytorch模型转其他的格式一般需要先转成通用的格式,onnx就是一种通用的格式,下面介绍转onnx的方法1.torch模型转onnx 直接通过torch官网:https://pytorch.org/docs/stable/onnx.html,提供的方法转onnximport torchvisiondummy_input = torch.randn(10, 3, 224, 224, device='cuda')model = torchvision.models.alexnet(pr.

2020-07-27 16:58:20 1226

原创 xgboost算法原理

1. XGBoost目标函数XGBoost的目标函数由训练损失和正则化项两部分组成,目标函数定义如下:第一项为损失函数,第二项为树的复杂度变量解释:(1)l 代表损失函数,常见的损失函数有:平方损失函数:逻辑回归损失函数:(2)yi'是第 i 个样本 xi 的预测值。由于XGBoost是一个加法模型,因此,预测得分是每棵树打分的累加之和。(3)将全部k棵树的复杂度进行求和,添加到目标函数中作为正则化项,用于防止模型过度拟合。2. 学习第t棵树在【1】中提到

2020-07-15 18:00:47 663

原创 docker常用命令

Docker 包括三个基本概念:镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 仓库(Repository):仓库可看成一个代码控制中心

2020-07-08 19:54:27 212

原创 PIL通过exif旋转图像

一些图片是带有exif信息的,某些软件在读取图片时会通过exif信息对图片进行旋转,如果图片是训练集,并且带有标注框,那我们需要以相同的方向显示图片以及对应的标注框假设图像的方向exif标记设置为3。我要做的是根据这个标签旋转这个图像,然后以这种方式保存它。这样,一个不解释exif的软件仍将以良好的方向显示它。但是,如果旋转后保存的图片exif标记方向仍然设置为3,那么解释exif的软件将再次旋转已旋转的图像。所以需要把这个标签设置为1(也就是说:没有方向)或者删除它下面代码是如何通过exif信息判

2020-07-06 14:29:40 1234

原创 AdaBoost算法

AdaBoost算法简介AdaBoost算法的全称是自适应Boosting(Adaptive Boosting),是一种二分类器,它用弱分类器的线性组合构造强分类器。弱分类器的性能不用太好,只需要比随机猜测强,依靠它们可以构造出一个非常准确的强分类器。强分类器的计算公式为:其中x是输入向量,F(x)是强分类器,是弱分类器,是弱分类器的权重值,是一个正数,T为弱分类器的数量。弱分类器的输出值为+1或-1,分别对应于正样本和负样本。分类时的判定规则为:其中sgn是符号函数。强分类器的输出值.

2020-07-02 15:30:02 1965

原创 strace实时查看进程日志输出

在启动进程的时候忘记重定向log到输出文件,或者terminal意外退出但是程序还在继续执行,但我想看看程序执行的具体情况,看看程序输出的log,这时候strace命令就派上用场了strace命令安装方式:apt-get install stracestrace 来变通的看一下日志,strace是一个用来跟踪进程执行时的系统调用和所接收的信号的程序会将程序的系统调用情况打印出来。而我们的日志输出,比如printf到了系统调用这一层,使用的是write,于是我们可以利用这一点动态的查看printf

2020-06-18 10:33:20 1791

原创 opencv边界扩充

扩充函数:cv2.copyMakeBorder(img,top,bottom,left,right,mode)填充图像边界的两种方法,也就是mode取值:BORDER_CONSTANT: 使用常数填充边界 (i.e. 黑色或者) BORDER_REPLICATE: 复制原图中边界的行或者列。 BORDER_REFLECT:复制边界区域的多行、多列像素1.安照边界区域的像素翻折进行扩充cv2.copyMakeBorder(img,50,50,50,50,cv2.BORDER_REP.

2020-06-11 11:30:14 2060

原创 训练CRNN时,关于ctc_loss的几点注意事项

这个ctc_loss很魔性,训练CRNN虐了我几个来回。我的数据集图片大小不一,我是先等比例缩小到固定高度为32,宽度不定。常见三个问题:1.CTC Loss Error: invalidArgumentError: Not Enough time for target transition sequence.2.CTC Loss Error: InvalidArgumentError: sequence_length(b) <= time3.ctc_loss error “No

2020-05-12 21:12:46 1664 2

原创 对指定的部分变量梯度更新

在训练模型,有时需要对某些变量停止梯度更新,比如蒸馏时teacher的weight保持不变,有一种简单的方式通过scope控制哪些变量是否进行梯度更新,tensorflow的tf.get_collection(key, scope=None)函数获取需要更新梯度的变量:var_list = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, ...

2020-05-08 16:36:27 550

原创 模型剪枝

剪枝主要用于压缩模型大小,可利用tensorflow slim模块剪枝API进行剪枝参考:https://github.com/tensorflow/tensorflow/tree/r1.13/tensorflow/contrib/model_pruning剪枝原理主要是增加一个形状和weight的shape一样的mask、threshold来进行剪枝,权重大于threshold的值被置为...

2020-04-13 15:03:02 1583

原创 tensorflow性能工具

tensorflow模型在移动端部署比服务端要复杂的多,需要考虑模型的精度、大小、速度、计算量、内存等方面的指标,下面对这些指标进行评价的工具进行相关介绍。1. 计算量tensorflow对浮点数计算量(FLOPs)和参数量进行统计import tensorflow as tfdef stats_graph(graph): flops = tf.profiler.profi...

2020-04-13 14:24:50 511

原创 toco生成tflite模型

模型量化有两种方式:python API和toco工具,这两种方式都可以进行tflite模型转换,包括float16、int8两种数据格式的tflite模型下面介绍使用toco工具进行模型转换的步骤:1.从tensorflow官方clone tensorflow源码,我使用的是tensorflow==1.13 git clonehttps://github.com/tensorf...

2020-04-07 11:03:07 2024

原创 base64编码发送到服务端需要URLEncode

最近在做手机端app的ocr算计集成的时候,遇到android端对jpg图片进行base64编码的大坑,android端的base64编码发送到server端,base64 encode字符串竟然发送了改变,什么,竟然这么坑1.android端请求python搭建的serverandroid自带的base64对bitmap进行encode,然后发送到server,server端收到base...

2020-03-13 20:04:28 1803

原创 optimizer.compute_gradients计算时梯度是none

在设计网络时会遇到,计算梯度时某些variable的gradient是None的情况,这种bug第一次遇到会比较头疼,如果没有踩过这其中的坑还真不知道如何解决,下面总结一下解决办法:1. model存在多余的op,也就是没有被使用的op 这种情况下,调用optimizer.compute_gradients()会报错,需要去除这些没有使用的op 这里也有提到:ht...

2020-03-10 16:18:18 1689

原创 tensorflow源码编译tensorflowlite.so

在android端通过C++调用tflite,不直接通过java调用,这时需要通过编译tensorflow的源码编译生成tflite的so库,下面介绍编译的详细过程1.下载tensorflow源码git clonehttps://github.com/tensorflow/tensorflow.git注意版本,为了与模型使用的代码相匹配,我使用的是tensorflow=r1.13...

2020-03-09 13:44:23 4072 1

原创 slim训练获取session,自定义log输出

tensorflow的slim模块封装了大量的模块,使用起来简单方便,但有时候想要控制log的打印却也是找不到相应的API,使用slim训练模型时,print语句往往是无法达到预期效果的,下面介绍如何使用train_step控制log1. slim.train slim.train()函数定义如下,初始化模型和参数后,需要调用下面的函数进行模型训练:def train(train...

2020-03-03 16:07:10 532 1

原创 视频编解码命令

基本用法1.获取视频的基本信息:ffprobe -v error -show_format -show_streams input.mp42.将视频解码为图片:ffmpeg -i test.mp4 -f image2 %d.png3.将图片编码为视频:ffmpeg -r 30 -f image2 -i %d.png -b:v 100000k -vf "fp...

2020-01-13 15:04:16 675

原创 docker中conda环境切换

关于docker的基础知识,这里不做多介绍,请自行补充,可参考:https://docs.docker.com/engine/reference/builder/docker中通过conda实现多套环境,但与物理机或者dev中的流程有所差异,直接把安装命令搬到dockerfile中不一定能执行成功1.在dockerfile中创建多套环境 创建多套环境主要通过conda命令:co...

2019-12-06 15:54:46 7290

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除