自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(270)
  • 资源 (1)
  • 收藏
  • 关注

原创 二进制或者其他文件中读取的内容进行解析操作

MNIST数据集会有二进制文件,如果需要将二进制文件解析出图片并保存,可以参考下面代码。其中pic文件夹下的存储的是目标图片,train-images.idx3-ubyte是数据集的图片文件,train-labels.idx1-ubyte是标签的二进制文件下面的是transfer.py的内容:import numpy as npimport structfrom PIL i...

2019-12-25 20:20:26 1602

原创 C++ 空指针与野指针

空指针空指针:指针变量指向内存中编号为0的空间,0-255之间的内存是系统使用的,nullptr默认是0用途:初始化指针变量注意:空指针指向的内存是不允许访问的。实例:空指针野指针野指针:指针变量指向的是一块非法的内存空间...

2019-12-16 14:44:28 601

原创 C++ #include <algorithm>

标准模板库:算法头文件<algorithm>定义了一组专门设计用于元素范围的函数集合。范围是可以通过迭代器或指针访问的任何对象序列,例如数组或某些STL容器的实例。 但是请注意,算法通过迭代器直接对值进行操作,而不以任何方式影响任何可能容器的结构(它从不影响容器的大小或存储分配)。参考手册:cplusplus.com具体包括 1、非修改序列操作 2、修改序列的操作 ...

2019-12-16 13:31:41 4863

转载 C++ explicit关键字

首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 构造函数没有使用explicit关键字...

2019-11-26 17:26:17 205

原创 【06】caffe中添加新的Layer

引言使用caffe有一段时间了,可是,目前使用的都是caffe自带的layer,随着自己对各种模型的熟悉,添加或修改现有layer的需求越来越大。最近一个项目需要使用可分离卷积,caffe当中,可以通过指定group参数实现可分离卷积,但是里面的实现方式效率不佳,在运行的时候出现显卡内存不足,所以果断放弃这种实现方案。模块引入为了能使得caffe支持可分离卷积,现在的办法就是往源代码里...

2019-10-25 20:58:15 328

原创 神经网络设计及调参的一些建议

一、卷积相关1、靠近数据层的卷积的数量一般会比后面卷积层的输出要少,例子vgg16后面的conv层输出通道比刚开始要多2、在输入的图像分辨率较低时,不宜使用跨度太大的stride_size。3、卷积层可以很好的保留位置信息,如果要做位置信息的提取,那么可以从这个层中提取出来。4、卷积层之间最好是加入激活层,引入非线性特性。而且应该避免连续使用好几个卷积层。5、对于一些检测任务,...

2019-10-25 20:04:59 388

原创 C++ public、protected、private继承

1 、C++继承机制的相关知识点继承机制,就是利用已有的数据类型来定义新的数据类型,新数据类型将拥有基类的成员。派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。单继承语法:class <派生类名称>:<继承方式><基类名>{//派生类新定义成员}; 多继承语法:clas...

2019-10-06 21:27:18 289

原创 C++中的虚函数

#include <iostream>using namespace std;class A{protected: int m_data;public: A(int data=0):m_data(data){} int getData() { return doGetData(); } virtual ...

2019-10-06 20:26:38 139

原创 C++类默认的四个函数,及手工实现String类

#include <iostream>#include <cstring>using namespace std;class String{public: //构造函数 String(const char *str = NULL); //析构函数 ~String(void); //复制构造函数 String(...

2019-10-06 11:25:07 214 1

原创 C++ a,b的比较与交换

#include<iostream>using namespace std;//获取两个数的最大者int maxNum(int a, int b){ return (a + b + abs(a - b)) >> 1;}//获取两个数的最小者int minNum(int a, int b){ return (a + b - abs(a -...

2019-10-04 20:23:53 991

原创 C++类型转换

1 与C有关的类型转换#include<iostream>using namespace std;int main(){ float a = 1.0f; // 输出强制转换的结果 cout << (int)a << endl; // 输出地址 cout << &a << end...

2019-10-03 21:27:01 157

原创 C++赋值语句

1 赋值语句的覆盖问题,这样重复定义变量i会产生一个警告,对应于不同的编译器,会产生不同的效果。#include<iostream>using namespace std;int i = 0;int main(){ int i = i; cout<< i <<endl; return 0;}2 与或运算及逻辑与或运算...

2019-10-03 20:11:24 2689

原创 C++友元

友元类:在A类中声明B类是它的朋友,B类中定义A类的对象,那么在B类中通过该对象可以实现对A类私有数据的访问#include<iostream>using namespace std;class A { public : //A将B认作为自己的朋友,B类中的函数可以直访问A类的私有数据 friend class B; priv...

2019-10-03 19:31:42 207

原创 C++中的vector

#include <iostream>#include<vector>using namespace std;void print(vector<int>);int sum(vector<int>);int main(){ vector<int> vec; vec.push_back(34); vec.push_...

2019-10-02 21:53:06 120

原创 C++中的指针操作

1、ptr++指针的理解#include <iostream>using namespace std;int main(){ int arr[] = {6,7,8,9,10}; int *ptr = arr; *(ptr++) += 123; cout << *ptr<<"---"<<*(++ptr); return 0;}...

2019-10-02 21:22:02 235

原创 hash表排序整数,实现复杂度为o(n)

hash表可用于排序整数,现在有一个需求,已知有百万级的数据,例如2019年全国高考理科学生的分数,需要进行一个排序工作,请设计一个代码要求在最短的时间里进行排序。下面用十个数据举例。#include <stdio.h>#include <stdlib.h>int main(int argc, char const *argv[]){ int random...

2019-07-26 15:56:16 1178

原创 【05】caffe中通道运算的分分合合

在caffe中有时候会涉及到通道的间的运算,比如通道的拆分、合并、相互运算等,下面介绍这几种分别在prototxt文件和py文件中的实现方法。# Sclice层实现拆分合并layer{ name:"data_s" type:"Slice" top:"a" top:"b" top:"c" slice_param { a...

2019-06-20 17:54:44 526

转载 【04】caffe网络layer top和bottom可以一样的相关解释

Caffe model里为啥有的layer top和bottom还能一样的?例如我们有时候会在网络结构中会看到下面这样的定义,其中的输入bottom和输出的层名称都是"conv1_1",实际上产生这样的同名通常是我们利用python接口定义网络时使用了in_place=True参数设置造成的,caffe利用in-place计算可以节省内(显)存,同时还可以省去反复申请和释放内存的时间。lay...

2019-06-19 16:20:39 2736

原创 tensorflow卷积实现图片轮廓提取

import matplotlib.pyplot as pltimport matplotlib.image as mpingimport numpy as npimport tensorflow as tfimg = mping.imread("lena-flipped.bmp")plt.imshow(img)plt.axis("off")plt.show()print(im...

2019-05-22 15:34:47 3043 1

原创 Numpy自己实现独热编码one-hot

有关于独热编码的介绍参考:这里下面列出如何使用numpy自己实现独热编码:import numpy as npdef dense_to_onehot(labels_dense, num_classes=10): num_labels = labels_dense.shape[0] index_offset = np.arange(num_labels) * num_c...

2019-05-22 14:53:42 3264 1

原创 tensorflow中关于卷积的分析

import tensorflow as tfinput1 = tf.Variable(tf.constant(1.0,shape= [1,5,5,1]))filter1 = tf.Variable(tf.constant([-1.0,0,0,-1.0],shape=[2,2,1,1]))op1 = tf.nn.conv2d(input1,filter1,strides=[1,2,2,1...

2019-05-20 20:41:01 259

转载 tensorflow中使用tf.train.slice_input_producer实现文件按队列加载

TensorFlow的Session对象是支持多线程的,可以在同一个会话(Session)中创建多个线程,并行执行。在Session中的所有线程都必须能被同步终止,异常必须能被正确捕获并报告,会话终止的时候, 队列必须能被正确地关闭。TensorFlow提供了两个类来实现对Session中多线程的管理:tf.Coordinator和 tf.QueueRunner,这两个类往往一起使用。...

2019-05-20 16:50:47 534

原创 tensorflow one-hot独热编码

1 基本概念解释下什么叫做独热编码(one-hot encoding),独热编码一般是在有监督学习中对数据集进行标注时候使用的,指的是在分类问题中,将存在数据类别的那一类用X表示,不存在的用Y表示,这里的X常常是1, Y常常是0。,举个例子: 比如我们有一个5类分类问题,我们有数据,其中类别有五种取值(因为是五类分类问题),所以如果为第一类那么其独热编码为:[1,0,0,0...

2019-05-20 15:57:14 3293

原创 tensorflow图像裁剪进行数据增强

#!/usr/bin/env python# encoding: utf-8'''@author: lele Ye@contact: [email protected]@software: pycharm 2018.2@file: 13mnist.py@time: 2018/12/17 10:23@desc:'''import tensorflow as tfimport ...

2019-05-20 15:13:01 2530

原创 numpy中np.array()与np.asarray的区别

array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。1.输入为列表时,即被转换的原始数据类型为列表时import numpy as npa=[[1,2,3],[4,5,6],[7,8,9]]b = np.array(a)c = np.asarray(a)...

2019-05-20 14:00:16 1360 1

原创 TensorFlow数据读取机制

TensorFlow读取机制图解首先需要思考的一个问题是,什么是数据读取?以图像数据为例,读取数据的过程可以用下图来表示:假设我们的硬盘中有一个图片数据集0001.jpg,0002.jpg,0003.jpg……我们只需要把它们读取到内存中,然后提供给GPU或是CPU进行计算就可以了。这听起来很容易,但事实远没有那么简单。事实上,我们必须要把数据先读入后才能进行计算,假设读入用时0.1s...

2019-05-19 21:55:44 276

原创 tf中的计算图流程

#!/usr/bin/env python# encoding: utf-8'''@author: lele Ye@contact: [email protected]@software: pycharm 2018.2@file: 10tf中的计算图流程@time: 2018/12/16 10:36@desc:'''import tensorflow as tf# 定义一个...

2019-05-19 20:11:15 662

原创 案例:keras二进制分类

#!/usr/bin/env python# encoding: utf-8'''@author: lele Ye@contact: [email protected]@software: pycharm 2018.2@file: 01二进制分类.py@time: 2018/12/19 17:57@desc:'''from keras.models import Seq...

2019-05-19 16:54:59 716

转载 np.array()和np.mat()区别

1. 生成数组所需格式不同mat可以从字符串或列表中生成;array只能从列表中生成import numpy as np# mat = asmatrix 源码当中mat作为指向asmatrix函数的一个变量arr_a = np.mat(data="1,2;3,4")arr_b = np.asmatrix([[5,6],[7,8]])print(arr_a)'''[[1 2]...

2019-05-19 14:43:58 29733 6

原创 关于相机标定的理解

平时我们都说要做视觉识别、测量云云,然后我们就会去拍照,再对数字图像做各种处理,颜色处理、灰度化、滤波、边缘检测、霍夫变换,最后得到了希望得到的特征,是这样的对吧?不过请注意!到了这一步,其实我们仅仅是得到了一坨坨感兴趣的像素而已!究竟要怎样才能把这些像素转化到现实世界的对象中呢?也就是说,究竟要怎样对这些仅存在于图像中的东西进行测量,才能得到具有实际意义和尺度的数据呢?这个时候我们就懵逼了…...

2019-05-19 14:24:53 540

原创 C++线程中的几种锁

线程之间的锁有:互斥锁、条件锁、自旋锁、读写锁、递归锁。一般而言,锁的功能越强大,性能就会越低。1、互斥锁互斥锁用于控制多个线程对他们之间共享资源互斥访问的一个信号量。也就是说是为了避免多个线程在某一时刻同时操作一个共享资源。例如线程池中的有多个空闲线程和一个任务队列。任何是一个线程都要使用互斥锁互斥访问任务队列,以避免多个线程同时访问任务队列以发生错乱。在某一时刻,只有一个线程可以获...

2019-05-19 14:22:55 259

原创 微信附近的人

系统设计题:设计一个系统,实现“附近的人”这一功能附近的人在微信的功能里大家都比较常用,如果按照我的理解,可以分为距离近和兴趣点近这两种附近的人的类型。关于用户兴趣计算得到附近的人,因为涉及到用户画像,推荐系统中的内容,这里暂且仅仅以空间距离进行附近的人作为衡量标准。1 给出功能设计 用户的上下线在用户表中新增字段” status” 和” last_time”。 ...

2019-05-19 14:12:35 1344

原创 员工随机分配

import randomoffice = [[] for x in range(3)]names = ['A','B','C','D','E','F','G','H','i','j','k']for name in names: randomClass = random.randint(0,2) office[randomClass].append(name)i...

2019-05-19 11:27:52 883

原创 kmeans聚类实现图像分割

#!/usr/bin/env python# encoding: utf-8'''@author: lele Ye@contact: [email protected]@software: pycharm 2018.2@file: kmeans.py@time: 2019/1/7 19:36@desc:基于聚类的图像分割'''import numpy as npfrom P...

2019-05-19 11:12:22 4425 3

原创 Python中的pickle序列化

import pickle# 需要被序列化的数据obj = 123,[1,2,3],"hello world",{'key1':'value1','key2':'value2'}# 序列化到文件a.pklwith open(r'./a.pkl','wb+') as f: pickle.dump(obj,f)# 加载并打印序列化数据with open(r'./a.pkl','...

2019-05-19 10:58:06 278

原创 Python在mysql数据库的增删查改

import pymysql# 获取数据库的版本信息def get_version_info(): # 打开数据库连接 db = pymysql.connect("localhost", "root", "你的数据库密码", "TESTDB") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() #...

2019-05-19 10:26:34 272

原创 全局最大池化,找到图片每个通道中最大值的位置坐标

#!/usr/bin/env python# encoding: utf-8'''@author: lele Ye@contact: [email protected]@software: pycharm 2018.2@file: 04max_position.py@time: 2019/4/30 16:32@desc: 找到图片每个通道中最大值的位置坐标,下面得出一张三通道图...

2019-05-18 20:43:28 2881

原创 自己构建矩阵与图片对应关系,保存为图片并解析

import numpy as npimport scipy.miscimport scipy.iofrom PIL import Image# 92 18 57分别对应着三个通道上的# 92 66 46 25 70 56 47 12 对应着一个通道的第一行,可以确定图片的width为8# 92 45 65 233 42 59 对应着一个通道的第一列,可以确定图片的height为6...

2019-05-17 22:07:05 1073

原创 numpy矩阵与与图像像素排布对应关系

通常我们使用的图像都是三通道,使用python的各种工具加载以后会变成ndarray格式,我们需要弄明白在numpy矩阵里面,每一行每一列对应着的值是图片的哪些信息,否者在做图像的处理时就会显得很盲目。下面通过实验说明:我选用的实验图片是上面这只英国短毛猫,图像维度信息为(121,121,3) 分别为width*height*channelsimage_path = './vgg1...

2019-05-17 21:14:57 4618

原创 Tensorflow加载训练好的VGG模型

现在,我们来进行一个稍微复杂点的demo,加载预训练好的VGG模型参数,然后用它来进行MINIST数据集的分类任务。模型加载的关键:需要知道模型是如何被保存的,知道存储的格式,才能正确恢复。这一点和字符编码的转换同理。一个模型通常会告诉你它对应的网络结构,模型存储的格式,最佳的是提供一个加载模型的脚本。若没有这些,你可能需要反复试数据,通过shape值判断模型恢复时加载出来的是什么。推荐一...

2019-05-17 16:23:41 3117

软件过程与管理总结整理精华版

第 1 章:绪论 第 2 章:过程综述 第 3 章:惯例过程模型 第 4 章:敏捷过程模型 第 5 章:软件项目管理综述 第 6 章:过程和项目度量 第 7 章:估算 第 8 章:项目进度安排 第 9 章:风险管理 第 10 章:质量管理 第 11 章:变更管 理 第 12 章:敏捷项目管理 第 13 章:案例讨论

2018-06-11

空空如也

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

TA关注的人

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