自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cp3

  • 博客(13)
  • 收藏
  • 关注

原创 Linux释放GPU显存

用tensorflow做实验,有时候会由于某种原因,在关闭程序后,GPU的显存仍处于被占用的状态,而用nvidia-smi查不到对应的进程pid. 这时释放显存的方法:sudo fuser /dev/nvidia*该命令会显示所有占用nvidia设备的进程pid,将这些pid逐个kill掉:kill -9 pid发现显存已经被释放。 不过,造成这种显存不能被释放现象的原因尚不清...

2018-04-04 18:04:57 20665 1

原创 Caffe中使用HDF5制作多标签数据

在Caffe中,如果使用LMDB数据格式的话,默认是只支持“图像+整数单标签”这种形式的数据的。如果训练网络需要一些其他形式的数据或标签(如浮点数据,多标签等等),可以将其制作成HDF5格式。PS:HDF5数据格式比较灵活,但缺点是占用空间较大。笔者曾经试着把229多张512x512的图像制作成一个HDF5文件,可以有1.4G. 因此建议图像文件的话,最好还是用LMDB格式,快速且节省空间;在网络定

2017-09-06 16:40:39 2532 3

原创 使用matplotlib画散点图/连线图/直方图

散点图import matplotlib.pyplot as plot#分别存放所有点的横坐标和纵坐标,一一对应x_list = []y_list = []#创建图并命名plt.figure('Data distribution')ax = plt.gca()#设置x轴、y轴名称ax.set_xlabel('value')ax.set_ylabel('count')#画散点图,以x_l

2017-08-22 14:27:54 40618

原创 Caffe中卷积的实现

方法:将卷积转化为矩阵相乘 两步: (1)调用im2col函数,将图像(feature map)转化为矩阵 (2)调用GEMM函数,做实际的运算优点:逻辑简单,易于实现缺点:耗费大量内存feature map每一个卷积位置(卷积核将要滑过的位置),展开成一个C∗K∗KC*K*K维的行向量继续展开……按照这个方式展开完毕之后,得到一个矩阵:H∗WH*W行(因为有H∗WH*W个卷积位置),C∗

2017-05-11 01:45:28 541

原创 CS231n官方笔记:反向传播

最近把CS231n关于反向传播这一节的官方笔记看了一下。这篇算是用中文把原文复述了一遍,中间一些地方加入了我自己的理解,很多地方的表述参考了 CS231n课程笔记翻译:反向传播笔记Introduction动机这篇笔记介绍了一些有助于在直觉上理解反向传播(BP)的知识。反向传播是一种通过递归应用链式法则(chain rule)来计算表达式梯度的方法。理解反向传播过程及其精妙之处,对于理解、实现、设计

2017-04-13 20:48:57 947

原创 机器学习中的逻辑回归

本文参考了Bin的专栏和李航《统计学习方法》。线性回归因为它的简单,易用,且可以求出闭合解,被广泛地运用在各种机器学习应用中。事实上,除了单独使用,线性回归也是很多其他算法的组成部分。线性回归的缺点也是很明显的,因为线性回归是输入到输出的线性变换,拟合能力有限;另外,线性回归的目标值是(−∞,+∞),而有的时候,目标值的范围是[0,1](可以表示概率值),那么就不方便了。逻辑回归定义典型的逻辑回归

2017-04-11 21:20:43 518

原创 机器学习中的线性回归

基本形式给定由d个属性描述的示例x=(x1;x2;...;xd)x=(x_1;x_2;...;x_d),其中xix_i是xx在第ii个属性的取值,线性模型试图学的一个通过属性的线性组合在进行预测的函数,即f(x)=w1x1+w2x2+...wdxd+bf(x)=w_1x_1+w_2x_2+...w_dx_d+b 一般用向量形式写成f(x)=wTx+bf(x)=w^Tx+b 其中w=(w1,w2,..

2017-04-11 20:58:27 466

翻译 PASCAL VOC2012 Chanllge 及其Dataset介绍

PASCAL:pattern analysis,statistical modelling and computational learning VOC:visual object classes该挑战的主要目的是识别真实场景中一些类别的物体。在该挑战中,这是一个监督学习的问题,训练集以带标签的图片的形式给出。这些物体包括20类:Person: personAnimal: bird,

2017-03-22 12:08:20 11259 1

原创 c++知识点

1. vector中的元素不可以是引用引用不是对象,它只是为一个已经存在的对象所起的另外一个名字。 vector是对象的容器,而引用不是对象,因此组成vector的元素不能是引用。2. 若要在在类外定义的某个类的inline成员函数,则要把定义写在和该类同一个头文件中,不要写在其他的源文件中,否则会造成链接错误// ……class A{ void f();};// ……in

2017-03-19 16:57:25 440

原创 在Linux下编译opencv程序

1. 将opencv编译安装到某一位置。对于我来说呢,我在家目录下新建了一个目录”libopencv3/”,将opencv3.1安装到了这里。 2. 在项目目录中创建makefile文件这是一个项目目录: 其中包含了所有我已经写好的源文件和头文件,其中的某些源文件(头文件)中include了opencv的相关内容。可以看到我已经在该目录中创建了makefile文件。3. 编写makefil

2017-03-11 15:05:48 804

原创 c++类型转换时的符号位扩展

先从一到题开始:unsigned short A = 10; printf("~A = %u\n", ~A); char c = 128; printf("c = %d\n", c);//输出是多少?标准答案是: ~A = 4294967285 c = -128分析:A是无符号短整型,占两个字节 A:0000 0000 0000 1010 ~A:1111 1111 1111

2017-03-09 20:10:10 1451

原创 补码

补码1. 为什么要用补码? 在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的。 假设有原码A,B,记“(补)A”为求A的补码,则有: 1. (补)((补)A) == A 2. A+B == (补)((补)A + (补)B) 3. (补)(A-B) ==

2017-03-09 16:34:45 730

原创 linux常用命令

linux常用命令1. deb包:  sudo  dpkg  -i  ***.deb    #安裝deb包(-i 意思是install)   sudo  dpkg  -l  ***.deb    #查看iptux.deb软件包的详细信息,包括软件名称、版本以及大小等2. 进程  ps  -A    #查看所有进程  ps  -e    #查看所有进程,功能等同ps

2016-05-10 19:03:05 400

空空如也

空空如也

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

TA关注的人

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