算法
文章平均质量分 82
ab0902cd
这个作者很懒,什么都没留下…
展开
-
kaldi 源码安装
kaldi安装原创 2022-07-14 14:17:39 · 1024 阅读 · 0 评论 -
JNI如何避免内存泄露
内存泄露主要是申请后没有及时释放导致的,谁申请谁释放是c++必须遵循的重要原则,malloc申请一般通过free进行释放,new申请的内存一般通过delete进行释放,如果不进行释放,内存会逐渐升高,最终无法申请到内存而导致内存泄露1. 哪些需要手动释放? 不要手动释放(基本类型): jint , jlong , jchar 需要手动释放(引用类型,数组家族): jstring,jobject ,jobjectArray,jintArray ,jclass ,jmethodID原创 2020-09-24 11:19:07 · 429 阅读 · 0 评论 -
xgboost算法原理
1. XGBoost目标函数XGBoost的目标函数由训练损失和正则化项两部分组成,目标函数定义如下:第一项为损失函数,第二项为树的复杂度变量解释:(1)l 代表损失函数,常见的损失函数有:平方损失函数:逻辑回归损失函数:(2)yi'是第 i 个样本 xi 的预测值。由于XGBoost是一个加法模型,因此,预测得分是每棵树打分的累加之和。(3)将全部k棵树的复杂度进行求和,添加到目标函数中作为正则化项,用于防止模型过度拟合。2. 学习第t棵树在【1】中提到原创 2020-07-15 18:00:47 · 747 阅读 · 0 评论 -
模型剪枝
剪枝主要用于压缩模型大小,可利用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 · 1673 阅读 · 0 评论 -
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 · 2098 阅读 · 0 评论 -
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 · 1875 阅读 · 0 评论 -
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 · 4252 阅读 · 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 · 560 阅读 · 1 评论 -
16位模型量化
1. float16模型量化能将模型减少为原来的1/2,在int8量化掉点严重的情况下,可以尝试浮点16位量化2.量化过程:1)安装tf-nightlypip install tf-nightly-gpu==1.15.0.dev20190821pip install tensorflow-estimator=1.15注意版本,一定要是1.15,其他版本好像不行,可以用下面的代码...原创 2019-12-05 15:40:16 · 2656 阅读 · 0 评论 -
int8模型量化
1. 量化原理模型量化是用8bit整数去表示32bit浮点型小数的过程,模型量在移动端是比不可少的步骤,量化化的好处主要在于减少模型的体积,加快模型的计算速度,但在一定程度上会损失模型的精度。模型量化的原理:这里的S和Z均是量化参数,而Q和R均可由公式进行求值,不管是量化后的Q还是反推求得的浮点值R,如果它们超出各自可表示的最大范围,那么均需要进行截断处理,具体可参考:http...原创 2019-10-30 10:30:39 · 4336 阅读 · 1 评论 -
模型压缩
参考:http://www.manongjc.com/article/37334.html在Google的优化方案中,主要有那么几种优化方式:删除未使用节点,删除training所需的ops,对权重进行四舍五入运算,对BN进行预处理,内存映射,以及终极伤敌1000自损800的方案—转换权重数据类型/tensorflow/bazel-bin/tensorflow/tools/graph_tr...原创 2019-09-02 16:58:23 · 143 阅读 · 0 评论 -
mnn编译
1. git clonehttps://github.com/alibaba/MNN.gitandroid端参考:https://www.yuque.com/mnn/en/build_androidlinux端配置(本次)2. 编译步骤a) 为了能够对模型进行量化,请在make之前,在CMakeLists.txt中打开quantizeb) protobuf安装:git...原创 2019-08-17 13:48:25 · 3004 阅读 · 0 评论 -
关于coco数据集的pycocotools/_mask.so: undefined symbol: _Py_ZeroStruct报错问题
最近在研究Mask RCNN分割问题遇到这个问题:pycocotools/_mask.so:undefined symbol:_Py_ZeroStruct摸索了好久,百度,Google都试过,没找到解决方法,最后自己想办法,一步一步找bug,解决方法:请注意Cython安装位置,用python执行还是python3执行,都要有Cython才行,没有请先安装第一步:git原创 2018-01-17 15:51:59 · 7080 阅读 · 0 评论 -
tf.constrib.slim计算损失函数
Tensorflow的模型训练需要模型,损失函数,梯度计算,以及根据loss的梯度迭代更新参数,使用tf.constrib.slim很方便。(1)losses使用现有的loss:loss = slim.losses.softmax_cross_entropy(predictions, labels)对于多任务学习的loss,可以使用:# Define the loss functions an...原创 2018-03-29 10:34:26 · 972 阅读 · 0 评论 -
undefined symbol: _Py_ZeroStruct
是因为没有对eavs进行编译进入faster_rcnn的setup.py文件所在目录,执行下面命令进行编译:python3 setup.py build_ext --inplace原创 2018-05-17 11:15:46 · 5036 阅读 · 0 评论 -
文本检测训练结果评测
1. 评测链接地址参照:http://rrc.cvc.uab.es/?ch=4&com=mymethods&task=12. 将测试的输出结果压缩为zip包,代码如下:import osimport xml.etree.ElementTree as ETimport numpy as npimport zipfilefrom functools import r...原创 2018-09-29 21:11:19 · 1535 阅读 · 0 评论 -
不同类别的预训练参数加载
参见链接:https://cv-tricks.com/tensorflow-tutorial/save-restore-tensorflow-models-quick-complete-tutorial/使用resnet34进行训练时可以使用预训练参数减少训练时间,如果预训练参数是20类网络,而我们的模型是4分类的模型,同样可以使用预训练参数,只是需要对加载的预训练参数进行修改,模型的类别进行...原创 2018-10-09 20:41:10 · 722 阅读 · 0 评论 -
caffe版crpn训练过程及遇到问题
环境:centos、cuda9、protobuf3、python2.7、anaconda2、OpenCV3其中x86_64-redhat-linux-c++、x86_64-redhat-linux-gcc、x86_64-redhat-linux-g++的版本都是5.3.1在PATH中加上gcc、g++的环境变量环境变量设置如下:PATH=/usr/local/protobuf-3....原创 2018-10-23 11:19:06 · 871 阅读 · 0 评论 -
图片和box旋转
import os,cv2,shutil,mathimport numpy as nproot = '/home/data/general_ocr_det_data'#root = '/home/xx/data/general_det_data'def rotate_about_center(src, angle, scale=1.): """https://www.osch...原创 2019-02-25 19:51:48 · 392 阅读 · 0 评论 -
EAST 编译错误:adaptor.so Error
我在使用python版本3对EAST进行编译时,出现以下错误:g++: error: unrecognized command line option ‘-fno-plt’解决办法:将Makefile文件的以下行CXXFLAGS = -I include -std=c++11 -O3 $(shell python3-config --cflags)中的$(shell pyth...原创 2019-03-08 15:41:08 · 2705 阅读 · 3 评论 -
OMP: Error
tensorflow报OMP错误,信息如下:OMP: Error #34: System unable to allocate necessary resources for OMP thread:OMP: System error #11: Resource temporarily unavailableOMP: Hint: Try decreasing the value of O...原创 2019-03-04 21:30:42 · 3260 阅读 · 3 评论