自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 caffe 之 proto 理解

caffe 所有层的参数全部定义在一个caffe.proto 的文件里面,里面有每个参数的详细解释,点击打开链接 在protocol buffers的官网的教程中,看到了一些基本的语法和编译使用,为了我们更好的理解caffe自定义一个.proto文件其实是很简单,如下所示syntax = "proto2";package tutorial;message Person {

2017-10-07 15:41:09 871

原创 LeetCode 64. Minimum Path Sum

最大值最小值问题,dp矩阵型问题,保存每一步的状态, 首先初始化第一行和第一列,然后填充中间的值,dp[i][j] = grid[i][j]+min(dp[i-1][j],dp[i][j-1])class Solution {public: int minPathSum(vector>& grid) { int col = grid[0].size();

2017-10-02 12:07:40 285

原创 LeetCode 494. Target Sum

使用递归方法class Solution {public: int findTargetSumWays(vector& nums, int S) { int res=0; find(nums,S,0,res); return res; } void find(vector& nums, int S, int start,

2017-10-02 10:58:41 330

原创 编程珠玑之快速排序

我们将需要划分的目标区间定位[l, u]。首先给定目标值t = x[l]。我们需要重新组织x[l...u],使得所有小于t的元素都在m的一端,所有大于t的元素在m的另一端。初始时m = l,我们将i从l+1一直遍历到u,代码在检测第i个元素时必须考虑两种情况。如果x[i]>=t,那么一切正常,不变式为真;如果x[i]void q_sort_ori(int *a, int low, in

2017-09-07 15:15:08 360

原创 编程珠玑之二分搜索

问题:使用二分搜索返回找到元素的位置,找到第一次出现的位置,找到最后一次出现的位置,分别使用循环和递归编写代码原始的二分搜索int bs(int *a, int low, int high, int target){ while(low < high){ if(a[low] == target) return low; int mid = (low+high)/2; if

2017-09-06 14:37:39 230

原创 服务器看图详解 XManager VNC imgcat

由于长期在服务器上工作,没有图形化界面全是命令行, 加上是做图像识别的,免不了整天看图,这里总结一下服务器看图的一些方法,配置好之后,可以使你的工作效率提升数倍,从每次把图片通过FileZilla 下载到本地打开看,数秒或者数分钟缩减至 输入一行命令的时间。1、mac 用户针对mac用户,一般都是通过iterm2 ssh 连接到远程服务器,由于iterm2 本身就很强大,支持看图,所以在服

2017-07-10 12:29:50 2163

原创 caffe 均值文件binaryproto 转mat

需要使用caffe 的matlab 接口测试分类,所以需要将之前的均值文件转换成.matcaffe 根目录下,matlab/+caffe 目录下有io.m, 里面写好了一个fuction read_mean() .如下所示。调用方法, 直接在caffe 的根目录下, 进入matlab,命令行,>>addpath('./matlab')>>mean_file = 'path/to/*

2017-07-06 11:48:23 1119 1

原创 人脸属性年龄性别标注工具

为了提升人脸属性性别和年龄的准确率,需要标注大量人脸图片数据,于是写了一个Qt工具,实现的功能是针对一张图片,标注男性还是女性,标注8个年龄段中的一个,这8个年龄段的选定是通过Adience 数据集标注的段选定的。界面如下:

2017-07-05 13:24:57 2233 1

原创 ImageNet2017 周记之第四周

距离截止日期还剩下一周,baseline还没有,但是已经找到问题所在。我把之前的VOC的prototxt换成coco的,然后使用class-aware的方式,训练。这样原先bbox输出的8个点,就变成了现在的804点,rfcn的8*7*7变为804*7*7,计算量无疑变大,训练速度自然也就变慢。由之前的1s2.5轮,变为现在1s1 轮。而batch是1,两块卡是2,也就是1s能够过两张图片,两个半

2017-07-05 11:38:54 445

原创 ImageNet2017 周记之第三周

因为使用RFCN直接训练ImageNet的baselinemAP只有24%左右,太低,打乱自己的计划,之前那种网络结构都没有机会去在ImageNet上使用,先找这个问题。花了一周时间,从重新写imagenet.py,处理ImageNet的数据,到训练完,得到结果,花了四天,还是这么高。说明之前训练RFCN的ImageNet数据处理是没有问题的,但是为何如此低,难道是因为ImageNet的目标检测比

2017-07-05 11:38:04 742

原创 ImageNet2017 周记之第二周

因为跑一次ImageNet需要2天多的时间,所以一开始是在VOC上做修改网络结构的实验。在网络结构上主要尝试了以下实验:第一种,就是直接使用RFCN+ Resnet101 结构跑VOC,什么改动都没有,结果作为baseline。第二种,在RFCN的ps-roipooling层,加入pad_ratio,之所以要加pad_ratio,相当于起到增大了proposal对应原图的尺寸,比如pad_

2017-07-05 11:37:12 595

原创 ImageNet2017 周记之第一周

首先,是调研,自己之前使用CNN做的都是分类任务,对检测了解一些,但是了解的不多,所以看了许多论文和一些博客。按照CNN 做目标检测的时间发展顺序介绍。RCNN,首先使用selectivesearch得到许多候选框,然后将这些候选框resize到一个固定相同的大小,使用CNN 预训练的网络提取特征,每个特征都对应一个SVM 分类器,判别该类属于类别,使用一个线性脊回归器进行精修框的位置。特点是

2017-07-05 11:35:28 690

原创 tensorflow 1.0 安装

教程在tensorflow 的官网上,我是用的源码编译https://www.tensorflow.org/install/install_sources首先安装 Bazel也是源码编译https://bazel.build/versions/master/docs/install-compile-source.html在编译bazel之前把PATH加上JDK的二进制路径比如$

2017-05-09 16:52:56 1208

原创 LeetCode98. Validate Binary Search Tree Add to List

解题思路:根据二叉查找树的定义,中序遍历二叉树得到的序列应该是一个增序列,所以使用中序遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : va

2017-04-11 00:18:39 368

原创 Latex 之BibTeX 管理文献(以 IEEE模板为例)

之所以使用Latex 是因为它对文献格式的管理比word要简单的多,这里介绍BibTex 管理文献的使用方法.自己在网上搜了好多,讲的大多是bib文件格式,bibtex 编译, 其实当按照我上一篇博客配置好sublime和Latex之后,无需再去想编译的事情, 直接Ctrl+B即可,所以我下面主要介绍从.bib文件的产生到引用.在你的.tex 文件的目录下,创建一个mylib.bib文件,

2017-04-10 22:39:42 16959

原创 mac 下配置Latex 搭配sublime2 skim

最近,要写论文,之前使用过Latex生成简历, 但是并没有用其写论文,而且Latex在国际上的会议和期刊都有许多模板,排版也更简单,所以花一下时间配置一下,边写论文边学习.1.MacTex的下载, 官网,按提示安装即可,挺大的.2.sublime2的配置, 因为自己之前一直用sublime,所以sublime配好了,大家不会的话可以单独搜一下sublime怎么配置,也很简单.3.ski

2017-04-10 22:23:11 813

原创 数据分析--iris dataset

数据分析–iris dataset%matplotlib inlinefrom matplotlib import pyplot as pltfrom matplotlib import pylabfrom pylab import figure, subplot, hist, xlim, showfrom sklearn.datasets import load_irisdata = l

2017-04-08 13:18:36 1129

原创 ipython web server 配置

最近深度学习训模型的时候, 需要画图看一下参数的变化,使用plt句柄, 服务器上没有图形化句柄,图片只能保存下来看,十分不方便, 所以配置了一下ipython web 服务器.默认服务器上已经装好ipythonIn [1]: from IPython.lib import passwdIn [2]: passwd()Enter password:Verify password:

2017-04-07 23:06:34 631

原创 Leetcode 537. Complex Number Multiplication

解题思路:主要是对字符分割class Solution {public: string complexNumberMultiply(string a, string b) { pair av = parse(a); pair bv = parse(b); int ra = av.first * bv.first - av.second

2017-04-05 10:36:35 343

原创 Mac 配置安装MySQL MySQLdb

1.mac 下安装mysql 步骤首先到官网上下载dmg按照步骤一步步做, 之后将 /usr/local/mysql/bin 加入到~/.zshrc 中source ~/.zshrc2.登录mysqlsudo sucd /usr/local/mysql/bin/./mysqld_safe --skip-grant-tables &之后mysql会自动重启(偏好设置中

2017-03-22 09:54:40 255

原创 python 之多线程编程

今天,看了python 核心编程的第四章,多线程编程,记录一下要点。1、进程和线程进程是一个执行中的程序,每个进程都有自己的地址空间、内存、数据栈以及其他用于跟踪执行的辅助数据.。线程,实在同一个进程下执行的,共享相同的上下文,一个进程中的各个线程与主线程共享一片数据空间,线程之间的信息共享和通信会更加容易。2、使用多线程python 中有thread 模块和 threadin

2017-03-20 11:14:18 533

原创 python 之 socket 通信

今天看了python 核心编程的第二章,讲了关于python socket 模块的通信, 记录要点如下:套接字:1、AF_UNIX AF_INET套接字地址:主机-端口对面向连接的套接字:在通信之前必须建立一个连接,比如使用电话给朋友打电话,实现这种连接类型的主要协议是传输控制协议(TCP)创建TCP套接字,必须使用SOCK_STREAM作为套接字的类型无连接的套接字:无须建

2017-03-19 16:39:01 413

原创 LeetCode 321. Create Maximum Number

由于k的大小不定,所以有三种可能,第一种是当k为0时,两个数组中都不取数;第二种是当k不大于其中一个数组的长度时,有可能只从一个数组中取数;第三种情况是k大于其中一个数组的长度,则需要从两个数组中分别取数,至于每个数组中取几个,每种情况都要考虑到,然后每次更结果即可。对于分别从两个数组中取数字的情况,我们需要将两个取出的小数组混合排序成一个数组,小数组中各自的数字之间的相对顺序不变。我们还需要一个

2017-03-18 17:20:50 383

原创 50 行 PyTorch 代码搞定 GAN

最近,一篇非常火的报道,使用pytorch 加 50 行核心代码模拟 GAN  对抗神经网络,自己尝试走了一遍,并对源码提出自己的理解。原文链接如下 https://medium.com/@devnag/generative-adversarial-networks-gans-in-50-lines-of-code-pytorch-e81b79659e3f#.nr3akui9z cod

2017-02-21 18:11:19 4217 2

原创 安装torch7 深度学习框架

在centos7 上安装torch7,首先在github上下载,  git clone https://github.com/torch/distro.git ~/torch --recursive  获取安装LuaJIT(C语言编写的Lua的解释器)和Torch所必需的依赖包然后,进入torch文件夹,打开并执行install-deps中的命令,因为我之前已经在服务器上配置好了caffe

2017-02-20 16:57:59 2479

原创 python 关键字之yield、next

包含yield 关键字的函数成为一个迭代器,yield跟return的位置一样,只不过每次返回结果后,并没有退出,而是等待下一次迭代,下一次迭代开始后从yield后的语句开始执行,直到再次遇到yield,返回新一次的结果。可以看成是一个List, 但是和list的不同的是占用内存少。def subimage_generator(img, stride, patch_size, nb_hr_im

2017-02-19 00:00:01 2547

原创 python 关键字之super

class C(B): def method(self, arg): super(C, self).method(arg)子类C重写了父类B中同名方法method,在重写的实现中通过super实例化的代理对象调用父类的同名方法。举例如下class BaseSuperResolutionModel(object): def __init__(self, mod

2017-02-18 23:47:49 812

原创 Keras 切换GPU

https://keras.io/getting-started/faq/  查看Keras 官方文档If you are running on the TensorFlow backend, your code will automatically run on GPU if any available GPU is detected.If you are running on the

2017-02-18 14:46:17 2384

原创 Swift3 基本语法

import Foundationprint("Hello, World!")var a = 5var b = 10let c = a+bprint(c,terminator:" ")var s = "hello xjc"s = "\(s) \(100)"print(s)var arr = ["hello":"xjc","he":"world"]print(arr["hell

2017-02-09 22:37:49 441

原创 数据结构之链表

#ifndef NODE_H#define NODE_Hclass Node{public: int data; Node *next; void printNode(); };#endif#include "Node.h"#include using namespace std;void Node::printNode(){ cout<<data<<endl;

2017-02-09 22:32:56 256

原创 数据结构之二叉树 使用数组实现

二叉树可以使用数组简单的实现,其原理就是左右子节点和父节点的关系,  2*index + 1 为左节点,2*index + 2 为右节点class Tree{public: Tree(int size,int *pRoot); ~ Tree(); int *SearchNode(int nodeIndex); bool AddNdode(int nodeIndex, int d

2017-02-09 22:30:45 668

原创 数据结构之二叉树

最近做leetcode 上有好多题目是关于链表和二叉树的相关操作,于是回顾了一下数据结构,实现了链表和二叉树相应的操作.#ifndef NODE_H#define NODE_Hclass Node{public: Node(); Node *SearchNode(int nodeIndex); void DeleteNode(); void PreorderTraversal

2017-02-09 22:24:55 197

原创 JNI c代码回调java空方法

首先在class JNI中定义public class JNI { static { System.loadLibrary("hello");//需要加载的so文件的名称 } //传递两个int类型的变量给C public native void callbackvoidmethod(); public void helloFromJ

2017-02-05 22:41:17 393

原创 LeetCode 155. Min Stack

解题思路:利用stack 重写 MinStack()class MinStack {public: /** initialize your data structure here. */ stackres; stackmin; void push(int x) { res.push(x); if(min.empty()

2017-02-05 13:54:17 236

原创 JNI修改Native方法数组参数中数组里面的元素值

JNIEXPORT jintArray JNICALL Java_com_example_feisou_a02_1helloworld_JNI_arrElementsIncrease (JNIEnv *env, jobject thiz, jintArray jarray){ jsize length = (*env)->GetArrayLength(env,jarray

2017-02-05 00:02:02 1079

原创 JNI开发之c代码中LOG打印调试信息

首先,在头文件中包括然后声明几个宏定义#include #define LOG_TAG "Syste.out"#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , LOG_TAG, __VA_ARGS__)#define LOGI(...) __android_log_print(ANDROID_LOG_INFO

2017-02-04 23:23:11 458

原创 LeetCode 204. Count Primes

解题思路:维基百科中 https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes  Input: an integer n > 1. Let A be an array of Boolean values, indexed by integers 2 to n, initially all set to true. for i =

2017-02-03 22:05:24 242

原创 LeetCode 69. Sqrt(x)

解题思路: 牛顿迭代法, https://en.wikipedia.org/wiki/Integer_square_root#Using_only_integer_division点击打开链接class Solution {public: int mySqrt(int x) { long long r = x; while (r*r > x)

2017-02-03 21:34:04 328

原创 LeetCode 58. Length of Last Word

解题思路:使用 istringstreamclass Solution {public: int lengthOfLastWord(string s) { istringstream ss(s); string result; while(ss>>result){ } return result.leng

2017-02-03 21:08:51 335

原创 LeetCode 88. Merge Sorted Array

解题思路: 比较两个数组的每个数的大小,从后往前比较,大的保存在nums1的最后,遍历.class Solution {public: void merge(vector& nums1, int m, vector& nums2, int n) { while(m>0 && n>0){ if(nums2[n-1]>nums1[m-1]){

2017-02-03 20:36:05 328

空空如也

空空如也

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

TA关注的人

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