
机器学习
文章平均质量分 65
Peanut_X
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
各种数据集
深度学习相关的各种数据集原创 2022-03-15 15:08:36 · 4070 阅读 · 0 评论 -
caffe编译依赖
caffe依赖apt install libprotobuf-dev protobuf-compilerapt install libgflags-devapt install libgoogle-glog-devapt install libatlas-base-devapt install libhdf5-serial-devapt install liblmdb-devapt install libleveldb-devapt install libsnappy-dev原创 2021-05-28 13:32:38 · 213 阅读 · 0 评论 -
Pytorch分布式训练(单机多卡)
主要两种方式:DataParallel和DistributedDataParallelDataParallel实现简单,但速度较慢,且存在负载不均衡的问题。DistributedDataParallel本身是实现多机多卡的,但单机多卡也可以使用,配置稍复杂。demo如下:DataParallelimport torchimport torch.nn as nnfrom torch.autograd import Variablefrom torch.utils.data import Data原创 2020-09-21 16:41:45 · 4269 阅读 · 2 评论 -
关于Softmax
基本公式:Si=ezi∑j=0Cezj S_i = \frac{e^{z_i}}{\sum_{j=0}^C{e^{z_j}}}Si=∑j=0Cezjezi其中,输入zzz为一个C维向量,输出SSS也是一个C维向量,这里的C通常就是分类里面的类别数量。公式的分母对于每个输出SiS_iSi都是一样的,区别只在于分子ezie^{z_i}ezi,从这个角度看softmax就有点类似于归一化操作,实际效果也是把任意范围的输入变成[-1,1]的输出(维度不变)。图像如下:softmax交叉熵原创 2020-05-11 19:25:20 · 251 阅读 · 0 评论 -
Opencv 形态学操作
形态学操作:使图像的形态发生改变的操作目的:用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的常用操作:膨胀、腐蚀、开操作、闭操作,梯度计算,顶帽变换,黑帽变换等应用场景:消除噪声、边界提取、区域填充、连通分量提取、凸壳、细化、粗化等;分割出独立的图像元素,或者图像中相邻的元素;求取图像中明显的极大值区域和极小值区域;求取图像梯度kernel:每次操作的范围...原创 2020-04-08 17:56:45 · 552 阅读 · 0 评论 -
姿态估计(人体关键点检测)之CPN
CPN:Cascaded Pyramid Network for Multi-Person Pose Estimation官方代码:https://github.com/chenyilun95/tf-cpn整体框架:此方法为TOP-DOWN方法,需依赖另一个人体检测模型,先把人体检测出来,再用此模型进行关键点检测。模型分为两大部分,一部分是Globalnet,主体是resnet,负责初步检...原创 2020-03-20 15:44:41 · 3388 阅读 · 0 评论 -
cmake findpackage 版本问题
专治cmake中findpackage的各种找不到问题,各种版本不对问题以重症患者protbuf为例。首先明确一点,findpackage的作用就是找到相关目录地址,并指定给相关变量。自动的找不着,我们手工指定就完了。step 1找到cmake目录,可以通过命令which cmake 定位。然后在cmake的根目录下找到share/cmake-x.xx/Modules/目录,找到Find...原创 2020-03-17 11:03:34 · 2532 阅读 · 1 评论 -
各种resize
opencvpythonresize(src, dsize, dst, fx, fy, interpolation)其中dsize和fx&fy二选一即可,dsize为(width, height)模式, interpolation为插值方式,默认为INTER_LINEAR代码插值方式INTER_NEAREST最近邻插值INTER_LINEAR双线...原创 2020-03-11 18:01:10 · 525 阅读 · 0 评论 -
tensorflow/keras 2 ncnn
以resnet50为例,记录tensorflow和keras模型转ncnn的过程resnet50 模型定义def identity_block(input_tensor, kernel_size, filters, stage, block): nb_filter1, nb_filter2, nb_filter3 = filters if K.image_dim_or...原创 2020-03-09 18:01:22 · 1327 阅读 · 5 评论 -
Tensorflow-gpu 版 faster-rcnn demo
经过一顿折腾,终于跑通了tensorflow版的faster rcnn,mark一下。 git源代码:git clone --recursive https://github.com/smallcorgi/Faster-RCNN_TF.git。这是github上面star最多的,也还有其他的实现,不过这个应该是最靠谱的。 进入Fater-RCNN/lib目录,执行ma...原创 2018-06-20 20:27:24 · 4850 阅读 · 3 评论 -
SSD代码解读之二——default box生成及标签整理
文章目录Default box生成(anchors)标签整理(bboxes_encode)Default box生成(anchors)Default box是对特定的feature map的每个点,生成特定数量、特定大小的box。生成的所有层的default box存入一个list中,每个feature map一个元素。def ssd_anchors_all_layers(img_shape...原创 2019-04-02 23:09:46 · 1962 阅读 · 0 评论 -
SSD代码解读之四——loss
文章目录相关参数实现过程相关参数loss的调用过程如下。ssd_net.losses(logits, localisations, b_gclasses, b_glocalisations, b_gscores, match_threshold=FLAGS.match_threshol...原创 2019-04-21 19:36:42 · 2056 阅读 · 4 评论 -
SSD代码解读之三——net
文章目录结构实现关键函数结构实现在vgg16的基础上修改,使用slim实现,比较简单。超参数定义:def ssd_arg_scope(weight_decay=0.0005, data_format='NHWC'): with slim.arg_scope([slim.conv2d, slim.fully_connected], ...原创 2019-04-21 20:03:40 · 2219 阅读 · 0 评论 -
目标检测测评指标——mAP
文章目录精确度Average PrecisionPASCAL VOC 2007的APPASCAL VOC 2012mAP:mean Average Precision,简单翻译过来就是平均的平均精确度(没错,就是两个平均),首先是一个类别内,求平均精确度(Average Precision),然后对所有类别的平均精确度再求平均(mean Average Precision)。精确度对于简单的...原创 2019-04-28 22:09:26 · 15086 阅读 · 4 评论 -
slim的train
文章目录函数定义参数args:Returns:基本流程模型恢复/初始化从checkpoint文件恢复模型用内存变量初始化"冻结"部分层非梯度更新函数定义tf.contrib.slim.learning.train_USE_DEFAULT=0def train(train_op, logdir, train_step_fn=train_step, ...原创 2019-06-13 00:02:50 · 620 阅读 · 0 评论 -
mnist demo
mnist demoimport tensorflow as tf slim = tf.contrib.slimfrom tensorflow.examples.tutorials.mnist import input_dataimport numpy as np mnist = input_data.read_data_sets('mnist', one_hot=True)num...原创 2019-08-12 17:04:47 · 255 阅读 · 0 评论 -
KMeans 聚类
import numpy as npimport matplotlib.pyplot as plt'''标志位统计递归运行次数'''flag = 0'''欧式距离'''def ecludDist(x, y): return np.sqrt(sum(np.square(np.array(x) - np.array(y))))'''曼哈顿距离'''def manhattan...原创 2019-08-12 17:14:56 · 214 阅读 · 0 评论 -
SSD代码解读之一——数据预处理
文章目录原创 2019-04-02 22:08:07 · 2579 阅读 · 0 评论 -
SSD原理解读
SSD解读优点网络结构抽取特征和预测过程:Default box生成规则正负样本选取——Hard negtive mining损失函数优点end to end,比yolo更准更快,比faster rcnn更快使用小的卷积滤波,在不同的feature map层预测bbox类别和bbox偏差可以在更小的输入图片中得到更好的结果网络结构基本网络: VGG16(stage1~stage...原创 2019-03-27 22:06:02 · 717 阅读 · 0 评论 -
站在巨人的肩膀上:Caffe finetune
所谓的finetune,就是利用别人训练好的模型,进行少量修改,再输入自己的数据进行训练,对参数进行微调,从而达到事半功倍的效果。 基本的步骤如下: 1. 准备数据、计算均值 与上一篇文章的步骤相同 2.修改配置文件 把原模型的配置文件solver.prototxt和train_val.prototxt拷贝过来,并进行修改...原创 2018-06-10 20:49:31 · 389 阅读 · 0 评论 -
动态库找不到的解决办法
调用caffe提示错误: Library not loaded: @rpath/libhdf5_hl.10.dylib Referenced from: /Users/Coder/py-faster-rcnn/caffe-fast-rcnn/python/caffe/_caffe.so Reason: image not foun...原创 2018-06-10 20:52:58 · 2064 阅读 · 0 评论 -
Ubuntu下的py-faster-rcnn配置
OS:ubuntu 16.04 LTS GPU:GTX 1070Ti(Nvidia驱动、cuda、cudnn已安装) Python:conda + python2.7 1、下载源码:git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 2、在caffe-fast-...原创 2018-07-14 21:59:41 · 268 阅读 · 0 评论 -
Ubuntu + Conda + CUDA + CUDNN + Tensorflow 环境搭建
简单记录一下搭建tensorflow-gpu过程中踩过的坑 平台: 显卡GTX 1070Ti;操作系统Ubuntu kylin 16.04,环境Conda 3.6, python2.7 坑一:Ubuntu版本不能太高,一开始装的18,后来各种不支持,重新装了16.04 坑二:Nvidia显卡驱动,不要通过Ubuntu系统的自带工具安装,否则不仅用不了,而且还会...原创 2018-06-19 01:37:48 · 7088 阅读 · 1 评论 -
tfrecord 基本用法
tfrecord格式是tensorflow官方推荐的数据格式,把数据、标签进行统一的存储 tfrecord文件包含了tf.train.Example 协议缓冲区(protocol buffer,协议缓冲区包含了特征 Features), 能让tensorflow更好的利用内存。 把某个文件夹的图片和标签存入同一个tfrecord文件,代码如下:def write(i...原创 2018-09-15 13:32:37 · 6103 阅读 · 7 评论 -
图像的变换
一、旋转 旋转的数学原理: 经过计算,可以得到以下关系: x′=xcosθ−ysinθ y′=xsinθ+ycosθ 写成矩阵的形式是: 或者是:(注意坐标按行的方式和按列的方式排列时,变换矩阵的左右位置不一样,矩阵中元素的位置也不一样。可以根据计算的实际过程来确定) 因此,如果知道旋...原创 2018-09-10 22:17:29 · 2250 阅读 · 0 评论 -
Tensorflow数据读取
目录 (1)Placeholder (2)队列的形式,建立从文件到tensor的映射 (3)tf 原生 Dataset API (4)slim.dataset (1)Placeholder Placeholder的方式比较简单,在设计计算图时把输入设置为占位符Placeholder,在执行计算时通过feed_dict来传入数据,数据的预处...原创 2018-08-11 20:26:28 · 871 阅读 · 0 评论 -
Tensorflow模型保存与提取
1、tf.train.Saver类 tensorflow主要通过train.Saver类来保存和提取模型,该类定义在tensorflow/python/training/saver.py中 Saver的初始化参数如下:__init__(self, var_list=None, #一个字典,指定保存的对象列表,默认为None,即保存所有可保存对象 r...原创 2018-07-12 11:22:29 · 1601 阅读 · 0 评论 -
Caffe:利用训练好的模型进行分类
以大神训练好的模型为基础,利用自己的数据进行了finetune之后,下一步就可以真正使用模型来进行分类操作了。具体步骤如下: 1. 编辑分类网络的配置文件deploy.prototxt deploy文件是真正使用模型时候用的,其结构与train_val.prototxt基本上是一样的,只是输入和输出模块有区别。因此,可以直接把train_val.prototxt拷贝一份...原创 2018-06-10 20:14:27 · 1414 阅读 · 0 评论 -
Caffe:训练自己的数据
1、数据准备 对于训练,需要两个数据集:一个用于train,一个用于validation(边训练边测试,用于检测模型变化)。 具体过程参考博文caffe学习系列:训练自己的图片集(超详细教程),简要步骤如下: (1)准备好训练和测试样本。 可以先准备好一个一样的数据集,然后从中每一类抽取一定的比例作为测试样本。如取5个类别的图片,每一类100...原创 2018-06-10 12:13:10 · 1348 阅读 · 0 评论 -
Mac + conda + python2.7 安装 caffe
环境: macOS 10.13.4,conda 3, python2.7 一、安装依赖包 主要有 snappy, leveldb,gflags,glog,hdf5,lmdb,opencv,scikit-image等,有些可能不一定需要,但是装了也没关系。直接在ANACONDA NAVIGATOR中搜索就行了。 注意要先选conda的环境再安装,否则装在别的环境...原创 2018-05-26 22:43:08 · 1707 阅读 · 4 评论 -
二元分类中的各种评价指标
二元分类中的各种评价指标混淆矩阵1. 准确率 (accuracy)2. 错误率3. 召回率(recall)/灵敏度(sensitive)4. 特效度(specificity)5. 精确率、精度(Precision)6. 综合评价指标F-Measure混淆矩阵通过混淆矩阵来表示预测值和实际值之间的关系其中,TP表示预测结果为Positive且预测正确(实际类别也是Positive),FP表示...原创 2019-03-09 16:08:39 · 2285 阅读 · 0 评论 -
各种图片格式
主要介绍python和tensorflow中各种格式的图片处理 一、图片的读入 PIL.Image读入图片(RGB格式)from PIL import Imagedef PIL_open(): image=Image.open('lena.png') image.show() cv2读入图片 (GBR格式)import cv2d...原创 2019-03-01 22:19:40 · 1040 阅读 · 0 评论 -
梯度检验
原理:利用如下公式: 一方面,利用数字计算的方法,估算,另一方面,利用设计的梯度算法计算梯度,看两者是否近似,如果相差很小,说明梯度算法正确。 利用数字计算方法计算梯度: 计算单个变量:(f的返回值是一个数字,如loss)def eval_numerical_gradient(f, x, verbose=True, h=0.00001): ...原创 2019-01-30 22:53:14 · 1020 阅读 · 0 评论 -
batch_norm
batch_norm对输入的每一个特征进行归一化,再进行缩放和平移(gamma和beta的作用) 这里主要记录其实现。 前向传播: 比较简单,就是求x的均值和方差,然后按如下公式求出 这里还记录了均值和方差的moving average,用于测试时使用。def batchnorm_forward(x, gamma, beta, bn_p...原创 2019-01-30 22:28:24 · 476 阅读 · 0 评论 -
Numpy one_hot
代码如下:n_classes = 10y = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])y_one_hot = (np.arange(n_classes) == y[:, None]).astype(np.float64) 其中用到的是numpy的广播机制和Boolean数组的转换 首先把y变成列矩阵In [34]...原创 2018-12-24 00:11:11 · 798 阅读 · 0 评论 -
常用损失函数
主要记录机器学习中的两大类任务(分类和回归)常用的损失函数一、分类问题1. Cross Entropy Loss(CE) 交叉熵损失,也叫Log Loss(两者等价,标签为{-1, 1}时为log loss, 标签为{0, 1}时为交叉熵) 原始的交叉熵公式如下,主要是衡量两个分布的相似程度,分布越相似,交叉熵越小。 对于二分类问题...原创 2018-11-19 23:20:23 · 9165 阅读 · 0 评论 -
Tensorflow的Variable和get_variable
tf创建变量主要有两种方式:tf.Variable()(V大写)、tf.get_variable()。 1、tf.Variable() (1)每次调用得到的都是不同的变量,即使使用了相同的变量名,在底层实现的时候还是会为变量创建不同的别名var1 = tf.Variable(name='var', initial_value=[2], dtype=tf.float32)var...原创 2018-07-11 21:00:47 · 1824 阅读 · 0 评论