自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hjimce的专栏

学如逆水行舟,不进则退

  • 博客(196)
  • 资源 (2)
  • 收藏
  • 关注

原创 hjimce算法类博文目录

hjimce算法类博文目录个人博客:http://blog.csdn.net/hjimce个人qq:1393852684知乎:https://www.zhihu.com/people/huang-jin-chi-28/activities一、深度学习深度学习(七十三)pytorch学习笔记深度学习(七十二)tensorflow 集群训练深度学习(七十一)3D CNN时空特征学习深度学习(七十)da...

2016-01-24 13:12:52 31383 19

原创 caffe to pytorch

(1)mmdnn docker拉取:docker pull mmdnn/mmdnn:cpu.small(2)启动docker,并共享主机文件nsfw_model:docker run -it -v /home/hjimce/work/open_nsfw/nsfw_model:/test mmdnn/mmdnn:cpu.small(3)docker环境模型转换:mmconvert -sf c...

2018-10-10 16:41:53 2007

原创 screen 使用

(1)确认远程服务器是否安装screen:screen -v(2)启动screen 会话:screen -S train_all,名字为train_all。这个时候会切换到新的会话终端,在里面运行我们想要的程序。(3)切换返回:ctrl+A+D(4)查看运行中的screen会话:screen -ls(5)看到对应的id后,重新登录会话:screen -r 109774...

2018-09-05 15:30:55 1632

原创 tmep

void forward_dropout_layer(dropout_layer l, network net){ int i; if (!net.train) return; for(i = 0; i < l.batch * l.inputs; ++i){ float r = rand_uniform(0, 1); l.rand[i...

2018-07-08 15:15:20 2961 1

原创 深度学习(七十四)半监督Mean teachers

2018-06-02 21:39:37 12761 5

原创 深度学习(七十三)pytorch学习笔记

先吐槽一下,深度学习发展速度真的很快,深度学习框架也在逐步迭代,真的是苦了俺这搞深度学习程序员。本人从三年前开始学深度学习开始,这些深度学习框架也是一个换过一个,从keras、theano、caffe、darknet、tensorflow,最后到现在要开始使用pytorch。一、变量、求导torch.autograd模块默认的variable定义的时候,requires_grad是false,变量...

2018-03-25 14:48:53 6709 5

原创 深度学习(七十二)tensorflow 集群训练

#encoding:utf-8# -*- coding: utf-8 -*-#使用说明:1、修改分类数目;2、修改输入图片大小;# 3、修改是否启用集群; 4、修改batch size大小;5、修改数据路径、模型保存路径#6、设置是否启用boostrap loss 损失函数import osimport tensorflow as tffrom input_data import ...

2018-03-22 10:24:20 4471

原创 深度学习(七十一)3D CNN时空特征学习

2018-03-20 12:06:48 10294 3

原创 网络编程(一)基础知识

1.1 Tcp数据发送从机器A发给机器B,数据发送是分解成很多信息包,到机器B后,机器B会重新合成在一起;在发送过程中,要求接收方没接收到一个包,需要反馈信息,如果没有反馈,tcp会自动重新发送,一直尝试目的是为了防止某个包缺失,导致整个数据损坏;每个包都会有个序号,这样确保B端,收到所有的包后,能够重组数据。1.2 IP地址与端口要给B发送数据,首先要知道B电脑的地址,其次由于B电脑可能有很多个...

2018-03-10 12:31:52 2468

原创 深度学习(七十二)ssd物体检测

def ssd_anchor_one_layer(img_shape, feat_shape, sizes, ratios, step, offset...

2018-03-05 20:45:59 3431

原创 数据结构(十七)最小生成树

最小生成树的目标是把本来一个包含n个节点的二维图结构,用n-1条边连接起来,并且这些边的长度总和最小。1 算法原理与dijkstra算法有点类似,假设图中有顶点V={A,B,C,D,E,F},我们要生成最小生成树。准备两个集合S_frozeen={},S_inactive={A,B,C,D,E,F},S_frozeen我们称之为源,最小生成树prim算法流程为:每次提取S_inactive中离源S...

2018-02-27 11:18:24 2555

原创 数据结构(十六)多源最短路径

求取i到j的最短距离,主要是通过引入第三个顶点k,如果d(i,j)>d(i,k)+d(k,j),那么也就是i到j之间如果经过k,距离是更短的。for(k=1;k<=n;k++) for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(e[i][j]>e[i][k]+e[k][j] ) e[i][...

2018-02-26 16:35:56 2194

原创 数据结构(十五)dijkstra单源最短路径

1 算法原理假设图中有顶点V={A,B,C,D,E,F},我们要求取A到其他顶点的最短距离。假设我们要求取定点A到其它顶点的最短路径,先把顶点A到源的距离设置为0,其他的距离设置为无穷大。准备两个集合S_frozeen={},S_inactive={A,B,C,D,E,F},S_frozeen我们称之为源,单源最短路径的的原理就是:每次提取S_inactive中离源S_frozeen最近的顶点,添...

2018-02-26 16:15:03 2207

原创 数据结构(十四)归并排序

1、分解将待排序数组A[1..n]分成两个各含n/2个元素的子序列,然后对这个两个子序列进行递归排序,最后将这两个已排序的子序列进行合并,即得到最终排好序的序列:merge_sort(A,p,r){    if(p<r)    {        q=(p+r)/2;        merge_sort(A,p,q);        merge_sort(A,q+1,r);   ...

2018-02-23 16:39:12 2048

原创 数据结构(十三)树的遍历

1. 前序遍历先访问自己,然后访问左子树,再访问右子树(1) 递归方法function(node*p){    print p.value    function(p->left);    function(p->right);}(2)非递归方法while(p!=null&&!stack.empty()){ while(p!=null)    {   ...

2018-02-22 10:51:56 1924

原创 数据结构(十二)动态规划

1 递归函数建模动态规划一般用于全局问题,在构造递归的时候,一般采用自顶向下分解的方法,先把全局问题分解成更小的子问题求解。下面举两个例子例子1:有一座高度是10阶的楼梯,从下往上走,每跨一步可以是一级或两级台阶。要求用程序求出一共一共有多少种走法。问题分析建模:首先总共有10步,假设只剩最后一步就到达第10阶,这个时候会有两种情况:第一种是从第九阶到第十阶,第二种是从第八阶到第十阶,然后两种情况...

2018-02-11 15:56:49 2434

原创 数据结构(十一)桶排序

1、算法流程上面的计数排序其实是桶排序的一个特例,当数据的范围是0~n,我们如果划分了n个桶,那么就是计数排序。我们现在假设数据范围是0~1的数,算法流程如下:(1)划分桶;(2)把每个数据插入对应的桶中,插入每个桶的时候,用插入排序;(3)链接所有的不为空的桶排序结果。2、代码实现//假设数据范围是0~1,我们切分了5个桶float * bucket_sort(float *data,int

2018-02-06 19:56:48 2398

原创 数据结构(十)二叉排序树

1、算法流程(1)树的构建与插入、查找 二叉排序树主要是通过逐个节点插入的方式进行构建树;每插入一个新节点p的时候,从根节点开始判断key值大小,确定往左走还是往右走,逐步递归,直到走到叶子节点,无路可走了,然后插入该节点;需要注意的是:每个新插入的点,肯定都是叶子节点;另外没有办法一次性构建一整颗树。(2)求取最大最小值 从树根节点开始,一直往左走,就是最小值;一直往右走,就是最大值(3)查找P

2018-02-05 20:10:02 2210

原创 数据结构(九)计数排序

1、算法流程(1)求取待排序数组A的最大值max;(2)创建一个新的数组C[max+1],用于统计数组A中的每个元素a,小于等于a的个数。(3)根据小于等于a的个数,来确定排序后,a在排序数组中的位置,进行位置填充;2、代码实现写代码需要注意事项:(1)计数统计结束后,我们根据C[a]的大小填充元素a,每填充一次C[a]要减去1,这样是为了保证重复数据可以正常填充;(2)填充如果是要稳定排序,那么

2018-02-05 19:02:07 2083

原创 数据结构(八)栈

1、算法栈是后入先出的规则,在代码实现的时候,构造栈链表的时候,节点指向前面的节点,而队列节点指向后面的节点,以便出栈的时候,代码实现方便。2、代码示例#ifndef DATA_STRUCT_STACK_H#define DATA_STRUCT_STACK_H#include using namespace std;class Stack{ class node{//链表节点

2018-02-03 11:56:50 1901

原创 数据结构(七)队列

1、队列需要具备的特性队列和栈的底层实现数据结构可以是:数组、链表,只不过在此基础上,队列和栈需要重载两个函数:节点的插入与删除函数。队列只能从链表头删除节点,从链表末尾插入节点;2、示例代码#ifndef DATA_STRUCT_QUEUE_H#define DATA_STRUCT_QUEUE_H#include using namespace std;class Queue{

2018-02-03 11:39:08 1855

原创 数据结构(六)霍夫曼树与编码

1、算法流程(1)构建霍夫曼树:自底向上根据统计频率构建霍夫曼树: A、把所有的节点扔进排序队列queue中; B、从queue选择选择前面两个最小的元素a、b,把最小的树a作为左节点,把最小的b作为右节点,以此构建父节点c(c的频率值为a+b的频率值),然后把a、b从队列删除、把c节点插入队列; C、循环(A)、(B)步骤构建霍夫曼树,直到queue为空。(2)编码阶段:自顶向下 A、除了树的根...

2018-02-02 16:07:46 2227

原创 数据结构(五)堆排序

1、算法流程(1)对原始数据构建大根堆:A、从下至上,遍历每个非叶子父节点,保证每个非叶子父节点都比它的左右子节点来的大,非叶子父节点的对应索引范围为[0,n/2-1];B、在遍历每个非叶子父节点的时候,如果发生该节点交换(下沉),那么要递归下去(2)交换大根堆构建后的数组的首个元素与末尾元素,这时候数组的末尾数值最大,排除该元素排序。(3)接着因为这个堆,就相当于堆顶元素被替换成了新的元素,其他

2018-01-28 11:17:58 1067

原创 数据结构(四)选择排序

1、算法流程(1)首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。(2)然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。(3)以此类推,直到所有元素均排序完毕。2、代码实现void select_sort(int*data,int length){ for(int i=0;i<length;i++) { int min_da

2018-01-27 20:17:51 425

原创 数据结构(三)插入排序

1、算法流程(1)假设数据集A,第i个元素的左边是排序好的;(2)把第i个元素a从右到左与i左边的元素b比较,如果发现该b>a,那么就把b后移一个位置(需要把a元素的位置先临时保存下来,然后空出位置);直到b的时候,就把a插进去。2、代码实现:void insert_sort(int*data,int length){ for(int i=0;i<length;i++) {

2018-01-27 19:53:32 356

原创 数据结构(二)冒泡排序

1、算法流程:(1)循环比较两个相邻的元素,如果第一个比第二个大,那么交换(2)经过第一轮迭代后,最后一个元素是最大值;然后继续第二轮迭代,除了最后一个之外(3)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。2、代码实现:void bubble_sort(int*data,int length){ bool flag= true; int count=0;

2018-01-27 18:49:16 414

原创 数据结构(一)快速排序

1、算法流程(1)输入两个哨兵i,j,整个过程要一直保证i(1)从数组D中选择第一个数为基准数A=D[i];(2)循环查找交换对,并交换,直到不满足i:从i+1元素开始,向右查找大于A的数a(始终保证i;从j元素查找小于A的数b(始终保证i,得到交换对(a,b),然后进行交换(4)判断终止位置i=j的位置数值与基准数A是否需要交换,这样最后得到的就是A左边的数D1都是小于A的,A右边的数D2,都是

2018-01-27 17:40:17 1025 2

原创 windows 安装tensorflow

1、安装anaconda22、Follow the instructions on the Anaconda download site to download and install Anaconda.Create a conda environment named tensorflow by invoking the following command:C:> conda create -n

2017-10-04 11:40:47 1054

原创 odps mapreduce学习笔记

一、map阶段主要函数: //record表示输入表的每一行记录 public void map(long recordNum, Record record, TaskContext context) throws IOException { for (int i = 0; i < record.getColumnCount(); i++) {//遍历每一列

2017-10-03 21:06:50 1802

原创 基础知识 java 图片与string相互转换

import java.awt.*;import java.awt.image.BufferedImage;import java.awt.image.RenderedImage;import java.io.*;import java.nio.charset.StandardCharsets;import java.util.Base64;import javax.imageio.I

2017-10-03 18:15:16 4469

原创 云计算odps使用笔记(一)环境搭建

1、到https://www.aliyun.com/product/odps?spm=a2c0j.7906784.recProduct.2.32121b06V3KcVI开通账号,然后选择按量付费,创建odps项目的时候选择io后付费2、maxcompute搭建:https://help.aliyun.com/product/27797.html3、maxcompute studio ide搭建:h

2017-10-02 21:06:38 1251

原创 odps词频统计

1、搭建maxcompute studio2、在项目下面选择script新建文件:new->maxcomput python->python udtf ,然后编写文本spilt:from odps.udf import annotatefrom odps.udf import BaseUDTF@annotate('string -> string')class my_first_udtf

2017-09-29 15:22:09 832

原创 深度学习(七十一)darknet 源码阅读

深度学习(七十一)darknet 源码阅读

2017-08-01 13:51:22 4473

原创 深度学习(七十)darknet 实现编写mobilenet源码

)parse.c文件中函数string_to_layer_type,添加网络层类型解析:if (strcmp(type, "[depthwise_convolutional]") == 0) return DEPTHWISE_CONVOLUTIONAL;(2)darknet.h文件中枚举类型LAYER_TYPE,添加网络层枚举类型:DEPTHWISE_CONVOLUTIONAL;(3)parse.c文件中函数parse_network_cfg添加网络层解析后进行构建: LAYER_T

2017-07-27 10:39:53 11540 23

原创 tensorflow windows

conda create -n py35 python=3.5activate py35pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.2.1-cp35-cp35m-win_amd64.whl

2017-07-19 17:20:55 1050

原创 从零开始编写深度学习库(五)PoolingLayer 网络层CPU编写

记录:编写卷积层和池化层,比较需要注意的细节就是边界问题,还有另外一个就是重叠池化的情况,这两个小细节比较重要,边界问题pad在反向求导的时候,由于tensorflow是没有计算的,另外一个比较烦人的是Eigen::Tensor的rowmajor、和colmajor问题,也很烦人。为了跟tensorflow做比较,一些边界处理上的细节,需要特别注意。一、c++、maxpooling、avgpool

2017-07-13 10:57:50 2337 1

原创 深度学习(六十八)darknet使用

这几天因为要对yolo进行重新训练,需要用到imagenet pretrain,由于网络是自己设计的网络,所以需要先在darknet上训练imagenet,由于网上都没有相关的说明教程,特别是图片路径是怎么和类别标签对应起来的,让我百思不得其解,所以最后就自己去查看了darknet的源码,发现原来作者是用了字符串匹配,来查找图片路径字符串中是否有与类别标签字符串匹配的子字符串,以此判断该类别标签的

2017-07-05 16:42:47 30506 6

原创 深度学习(六十九)darknet 实现实验 Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffma

原始模型大小64M:mAP=0.224 训练500次,模型大小54M:mAP=0.203训练5000次,模型大小49M:mAP=0.214训练50000次,模型大小39M:mAP=0.221训练100000次,模型大小30M:mAP=0.231

2017-07-04 14:07:03 5927 17

原创 深度学习(六十六)生成模型、最大化似然、KL散度

成模型中,假设样本数据是来自于未知的数据分布Pr中采样得到,生成模型的学习过程就是要学习一个Pr的近似概率分布Pθ,其中θ是模型的参数。对于Pθ有两种建模方式:(1)直接用参数θ来描述密度函数。也就是概率密度函数满足:(2)通过已知分布的随机变量Z,用参数θ的变换函数gθ(z)来描述概率密度函数:

2017-06-27 09:45:55 3641

原创 深度学习(六十七)metal forge深度学习库使用

1、设置输入:let input = Input()或者let input = Input(width: 100, height: 100, channels: 3)2、创建网络:let output = input --> Resize(width: 28, height: 28) --> Convolution(kernel: (5, 5), channel

2017-06-19 17:41:45 1638

递归双边滤波(图像处理)

图像保边缘去噪算法,速度远高于传统双边滤波

2014-11-20

B样条曲线的绘制(c++语言MFC)

运行后,用鼠标输入控制顶点,然后点击菜单栏的生成B样条曲线,即可生成B样条曲线。可生成多条B样条曲线

2013-07-05

空空如也

空空如也

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

TA关注的人 TA的粉丝

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