- 博客(123)
- 收藏
- 关注
原创 C语言指针
目录一、内存与地址二、指针变量定义三、通过指针变量取得数据四、“野”指针五、指针与数组 1.一维数组和指针 2.二维数组和指针 3.数组指针和指针数组六、指针与字符串 1.常量字符串与指针 2.变量字符串与指针七、指针与函数 1.指针作函教形参——传址调用 2...
2019-07-30 17:59:03
825
原创 指针
目录一、指针变量的定义和使用 1.定义指针变量 2.通过指针变量取得数据 3.关于*和&二、指针变量运算(加法、减法、比较运算)三、数组指针(指向数组的指针) 假设 p 是指向数组 arr 中第 n 个元素的指针,那么 *p++、*++p、(*p)++ 分别是什么意思呢?四、字符串指针(指向字符串的指针)...
2019-07-28 22:08:42
28847
10
原创 预处理命令
目录一、预处理命令二、#include 1.尖括号/引号引入标准头文件区别 2.#include 用法举例三、C语言宏定义----#define四、带参数的宏定义 对带参宏定义的说明五、C语言带参宏定义和函数的区别六、C语言宏参数的字符串化和宏参数的连接 1.# 的用法 2.#...
2019-07-27 22:40:10
11236
2
原创 C语言函数
目录一、函数定义 1.无参函数的定义 2.有参函数的定义 3.函数不能嵌套定义二、函数形参和实参 形参和实参的区别和联系三、函数返回值四、函数调用 1.函数的嵌套调用五、函数声明以及函数原型六、全局变量和局部变量 1.局部变量 2.全局变量 3.局...
2019-07-27 17:35:51
513
原创 图像分割之分水岭算法
分水岭算法 分水岭算法(Watershed)基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构...
2019-07-25 22:31:49
1524
原创 图像前景分割之GrabCut算法
参考: 参考项目一:https://github.com/NathanZabriskie/GraphCut 参考项目二:https://github.com/cm-jsw/GraphCut运行环境: 1.python3.x 2.所需库函数:numpy,opencv-python 3.操作步骤: ...
2019-07-25 21:40:33
2303
原创 数组
目录一、一维数组 1.概念 2.定义方式 3.数组初始化二、二维数组 1.二维数组定义 2.二维数组的初始化(赋值)三、查询数组中的元素 1.对无序数组的查询 2.对有序数组的查询四、字符数组和字符串 1.字符数组赋值 2.字符串结束标志(...
2019-07-24 11:56:52
387
原创 选择和循环结构
目录一、选择(判断)结构 1.if...else... 2.switch case语句 3.条件运算符二、循环结构 1.while循环 2.for循环 3.break和continue三、选择结构循环结构总结 1.选择结构 2.循环结构 C语...
2019-07-23 17:40:52
779
原创 输入&输出
目录一、输出二、输入 1.scanf() 2.getchar()/getche()/getch() 3.gets()三、输入&输出总结 1.getchar() & putchar() 函数 2.gets() & puts() 函数 3.scanf() & pr...
2019-07-22 22:26:40
340
原创 变量和数据类型
1.变量 变量------一个有名字的,具有具体属性的一个存储单元。你可以将变量直接就理解为内存。C语言的规则是:变量必须先定义才能使用。对变量的定义其实就是请求计算机,让计算机将内存中的某个单元分配给你定义的变量使用。int a;//在内存中找一块区域,命名为 a,用它来存放整数。a = 100;//赋值是指把数据放到内存的过程,这里把100放到了一块叫做 a 的...
2019-07-22 16:10:23
790
原创 C语言初探
一、编程语言 编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样),必须遵守,否则就会出错,达不到我们的某种目的。 编程语言的发展大概经历了以下几个阶段:汇编语言 --> 面向过程编程 --> 面向对象编程汇编语言是编程语言的拓荒年代,它非常底层,直接和计算机硬件打交道,开发效率...
2019-07-21 22:48:50
317
原创 搭建开发环境
每一门编程语言都有自己的集成开发环境(IDE,Integrated Development Environment)。集成开发环境一般包含代码的编辑、编译、调试等功能。好的集成开发环境还具备高亮、代码提示、格式自动调整等便捷的功能。 集成开发环境是一系列开发工具的组合套装。这就好比台式机,一个台式机的核心部件是主机,有了主机就能独立工作了,但是我们在购买台式机时,往往...
2019-07-21 22:35:23
838
原创 二进制、八进制和十六进制
我们平时使用的数字都是由0~9共十个数字组成的,因为只有0~9共十个数字,所以叫做十进制。进行加法运算时逢十进一(满十进一),进行减法运算时借一当十,这就是十进制。借助同样的思想,计算机中有二进制、八进制、十六进制之说,接下来详细讲解进制加减法及不同进制之间转换。一、二进制、八进制、十六进制 1.二进制 只用0、1两个数字来表示数值,这就是二进制...
2019-07-21 15:36:12
6441
原创 Python POP3协议收取邮件
再来回顾一下一封电子邮件的旅程:发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人 我们知道SMTP可用于发送邮件,如果要收取邮件呢?收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上。收取邮件最常用的协议是POP协议,目前版本号是3...
2019-07-16 18:38:08
903
原创 Python SMTP协议发送邮件
几乎所有编程语言都支持发送和接收电子邮件,Python也不例外。本节我们将学习使用Python来发送邮件。一、电子邮件发送流程 假设我们自己的电子邮件地址是xxx@163.com,对方的电子邮件地址是xxx@qq.com,现在我们用邮件客户端软件(如Outlook或者Foxmail)写好邮件,填上对方Email地址,点击“发送”,电子邮件就发送出去了。 ...
2019-07-16 16:28:28
1315
原创 Python网络编程
一、TCP/IP简介 计算机为了联网,就必须规定通信协议,早期的计算机网络都是由各厂商自己规定一套协议,如IBM、Apple和Microsoft都有各自的网络协议,互不兼容,这就好比一群人有的说英语,有的说中文,有的说德语,说同一种语言的人可以交流,不同的语言之间就不行了。 为了把全世界的所有不同类型的计算机都连接起来,就必须规定一套全球通用的协议,为了实现互联网这...
2019-07-15 19:57:50
279
原创 python进程与线程(二)
一、进程、线程 首先,要实现多任务,通常我们会设计Master-Worker模式,Master负责分配任务,Worker负责执行任务,因此,多任务环境下,通常是一个Master,多个Worker。Master-Worker模式其处理过程如下图所示。 1. 多进程VS.多线程 如果用多进程实现Master-Worker,主进程就是Master,其他...
2019-07-09 21:04:08
225
原创 python进程与线程(一)
一、进程和线程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个微信就启动了一个微信进程,打开一个淘宝就启动了一个淘宝进程,有些进程还不止同时干一件事,比如看视频进程,它可以同时运行视屏、音频、字幕等等事情。在一个进程内部,要同时干很多事情,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)。 由于...
2019-07-09 12:19:03
697
原创 Python IO编程
一.文件读写 IO在计算机中指input/output,也就是输入输出。读写文件是最常见的IO操作。 1.1 读UTF-8编码的文本文件 分为三步: 第一步:以读文件模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标识符 第二步:如果文件打开成功,调用 read() 方法一次性读取文件的全...
2019-07-03 18:17:57
476
原创 Python错误和异常
在我们开发程序过程中,总会遇到各种错误。有的错误是由于程序编写有问题造成的,比如本应该输出整数结果输出了字符串,这种错误我们称之为bug,bug是必须修复的。有的是用户输入错误造成的,比如让用户输入email地址,结果得到空字符串,这种错误可以通过检查用户输入来做相应处理。还有一类错误是完全无法在程序运行过程中预测的,比如磁盘满了,网络突然连接失败......这类错误称为异常。Pyt...
2019-07-02 12:37:43
433
原创 Python面向对象高级编程
1.__doc__ 表示类的描述信息# -*- coding:utf-8 -*-class Foo(object): '''这里描述类的信息''' def func(self): passprint(Foo.__doc__) #这里描述类的信息2.__module__和__class____module__ :表示当前操作的对象在哪个模块_...
2019-07-01 12:19:48
351
原创 31.集成学习Ensemble
集成学习(ensemble learning)可以说是现在非常火爆的机器学习方法了。它本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。集成学习可以用于分类问题集成,回归问题集成,特征选取集成,异常点检测集成等等,可以说所有的机器学习领域都可以看到集成学习的身影。本文就对集成学习的原理做一个总结。1.集成学习概述...
2019-06-24 21:51:05
368
原创 30.RNN应用
应用 循环神经网络有很多种应用情景。1.Many to one ①语义分析里面,输入是一个vector序列,输出为一个vector ②关键词提取2.Many to many ①语音辨识里面会有一个问题,比如你说好棒,它可能识别很多“好”和“棒” 所以我们需要用CTC的方法来解决...
2019-06-24 21:50:52
2583
1
原创 29.RNN-Recurrent Neural Network
1、从一个例子说起 假设要做一个智能客服系统或者智能订票系统之类的,需要用到一个叫做Slot Filling(添槽)的技术,举个例子,如果做一个人对智能订票系统说 ”I would like to arriveTaipeionNovember 2nd“。那么你的系统会有一些Slot,在这里应该是Destination和time of arrival,然后根据对方...
2019-06-23 16:27:29
257
原创 28.Structured Learning - Sequence Labeling
Sequence Labeling(序列标注问题),可以用RNN解决,也可以用Structured Learning(two steps,three problems)解决 词性标注(part-of-speech tagging,POS tagging),对应输入是序列输出也是序列的结构化学习问题,词性标注属于其中。词性标注指的是在一串的字词中标注每一个词所属的...
2019-06-19 08:21:10
333
原创 Python面向对象
面向对象编程(Object Oriented Programming,OOP),是一种程序设计思想,把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向过程的程序设计把计算机程序视为一系列命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。而面向对象的程序设计把计算机程序视为一组对象集合,而...
2019-06-17 22:00:08
314
原创 Python模块及不同目录下导入模块方法
一、模块 在实际程序开发过程中,随着我们代码越写越多,文件中代码越来越长,最终导致越来越难以维护。为了编写可维护代码,我们可以把很多函数分组,分别放到不同文件里。在Python中,一个 .py 文件就称为一个模块(module)。为避免模块名冲突,Python引入了按目录来组织模块的方法,称为包(package)。 使用模块优点:①提高代码可维护性 ②编写代码不必从...
2019-06-17 09:41:32
20473
20
原创 26.Structured Learning-Linear Model
上节讨论了Structured learning的简介,本节我们讨论Structured learning最简单的模型Structured linear model。 上节课说到,Structured Learning的Unified Framework有三个问题: 如果F(x,y)长成特定形式的话,那么Problem 3就不是问题。1...
2019-06-16 09:33:41
229
原创 函数式编程——装饰器、偏函数
一、装饰器 装饰器就是用于扩展原来函数功能的一种函数,这个函数特殊之处在于它的返回值也是一个函数,使用Python装饰器的好处在于不更改原函数的代码前提下给函数增加新功能。它经常用于有切面需求场景,如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们可以抽离出大量与函数功能本身无关的代码到装饰器并继续使用。总的来说,装饰器的作用就...
2019-06-13 18:09:59
309
原创 函数式编程——高阶函数(map/reduce/filter/sorted)、返回函数(闭包)
函数式编程是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。Python对函数式编程提供部分支持,由于Python允许使用变量,因此,Python不是纯函数式编...
2019-06-10 22:49:18
358
原创 25.Structured Learning-introduction
1.结构化学习(Structured Learning) 在之前的学习中,输入和输出都是向量vector。然而在现实生活中,有时我们希望输入输出是带有结构的,比如sequence, list, tree, bounding box……因此我们需要一个更加强大的函数。2.应用 Structured learning应用十分广泛3.通用框架(Un...
2019-06-09 15:13:35
267
原创 生成器迭代器
一、列表生成式 在学习生成器迭代器之前先了解一下什么是列表生成式,列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式。什么意思?举个例子,如果想生成列表[0,1,2,3,4,5]可以使用list(range(6)),但是如果想要生成[,,,,,]即[0,1,4,9,16,25]怎么做?#方法一:循环>>> L = []>&g...
2019-06-06 11:43:15
702
原创 24.Support Vector Machine
一、简介 支持向量机(support vector machines)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括: &当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机; &当训练样本近似线性可分时,通过软间隔最大化,学习一...
2019-06-04 18:17:54
288
原创 23.Transfer Learning
概念 迁移学习是什么? 假设手上有一些和现在要进行的学习任务不相关的数据,那么能不能用这些数据帮助完成学习任务。 如下图,比如我们想做一个猫狗分类器,但是我们没有猫狗的图片数据,而只有以下数据: a、大象和老虎图片(都是动物图片,所以属于相似的域(domain),但是与猫狗分类相比是完全不同的学习任务) ...
2019-06-04 18:17:40
231
原创 22.Unsupervised Learning-Deep Generative Medel(2)
(接上一条21 Unsupervised Learning-Deep Generative Medel)2. Variational Autoencoder(变分自编码) 上一节笔记我们讲到了VAE,VAE结构如下 为什么要用VAE?一个intuitive的解释是,auto-encoder的encoder与decoder都是非线性的,很难预测问号处是一...
2019-06-03 19:25:19
205
原创 21.Unsupervised Learning-Deep Generative Medel(1)
引言:在之前介绍的机器学习教程中机器可以做到分类,但不能生成真的模型。费曼曾经说过如果一个东西我没有真正创造它,那么我就没有真正理解它。Machine可以分类猫和狗,但或许并不真的知道猫是什么,狗是什么,未来某一天它可以自己画出猫的时候,猫这个东西的概念或许不一样了。 生成模型(Generative Models):生成模型的想法是希望机器能够自己主动去生成...
2019-06-02 09:36:19
205
原创 Python函数
函数,简单地讲就是一段可以重复使用的代码段,给这段代码起个名字就是“函数名”。在程序的任何地方都可以通过函数名来使用这段代码,这就是“函数调用”。一、定义函数 1.在Python中可以定义一个自己想要功能的函数,以下是简单的规则: A、函数代码块以def关键字开头,后接函数名、圆括号()、圆括号中的参数和冒号:,然后在缩进块中编写函数体,函数的返回...
2019-05-29 12:05:33
365
原创 20.Unsupervised Learning-Auto-encoder
Auto-encoder 自编码器是一种无监督学习方法,可用于数据降维及特征抽取。自编码器由编码器(Encoder)和解码器(Decoder)两部分组成。编码器通常对输入对象进行压缩表示,解码器对经压缩表示后的code进行解码重构。 它的思想是,找一个encoder,比如input一张image,经过encoder,output一个code,它的维度要远比inpu...
2019-05-28 15:22:48
262
原创 Python基础语法
一、为什么使用Python Python是一种解释型、面向对象、动态数据类型的高级编程语言,具有现在高级编程语言的特性,完全面向对象。Python是荷兰人Guido van Rossum(“龟叔”)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。 Python优点:“优雅”、“明确”、“简单” Python缺点:①运行...
2019-05-27 21:33:23
3441
原创 19.Unsupervised Learning-Neighbor Embedding
之前在PCA中介绍了线性降维的方法,今天讲述neighbor embedding,即非线性降维的方法。降维凭借的是data point 和data point之间的关系,在降维前的空间中每一个点和它的邻居之间的关系来做降维,也叫做manifold learning。Manifold Learning 我们要做的是非线性的降维,data是分布在低维空间里面,只是被扭...
2019-05-27 08:12:50
287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅