- 博客(42)
- 收藏
- 关注
原创 python nonzero
nonzero(a)返回数组a中值不为零的元素的下标,它的返回值是一个长度为a.ndim(数组a的轴数)的元组,元组的每个元素都是一个整数数组,其值为非零元素的下标在对应轴上的值。例如对于一维布尔数组b1,nonzero(b1)所得到的是一个长度为1的元组,它表示b1[0]和b1[2]的值不为0(False)。[python] view plain copy
2017-04-30 10:37:55
515
转载 关于Python中的yield
在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor)。一、迭代器(iterator)在Python中,for循环可以用于Python中的任何类型,包括列表、元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到
2017-04-22 09:55:46
353
转载 Python的sys.stdout、sys.stdin重定向
sys.stdout 与 print当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+'\n')print 将你需要的内容打印到了控制台,然后追加了一个换行符print 会调用 sys.stdout 的 write 方法以下两行在事实上等价:sys.stdout.write('
2017-04-22 09:42:27
829
原创 python numpy中nonzero()的用法
当使用布尔数组直接作为下标对象或者元组下标对象中有布尔数组时,都相当于用nonzero()将布尔数组转换成一组整数数组,然后使用整数数组进行下标运算。nonzeros(a)返回数组a中值不为零的元素的下标,它的返回值是一个长度为a.ndim(数组a的轴数)的元组,元组的每个元素都是一个整数数组,其值为非零元素的下标在对应轴上的值。例如对于一维布尔数组b1,nonzero(b1)所得到的是一
2017-04-21 16:25:23
752
原创 KNN
缺点:耗内存,存储所有训练样本,对每个测试样本都要计算和所有训练数据的距离,时间成本高代码如下:from numpy import *import osdef loaddata(): data=array([[1.0, 0.9], [1.0, 1.0], [0.1, 0.2], [0.0, 0.1]]) labels = ['A', 'A', '
2017-04-14 15:56:09
328
转载 python xrange和range的使用区别
range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个列表。 eg:>>> range(10)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> range(2,10)[2, 3, 4, 5, 6, 7, 8, 9]>>> range(2,10,2)[2, 4, 6,
2017-04-13 21:00:55
376
转载 Python-Numpy的tile函数用法
>>> tile(1,2)array([1, 1]) >>> tile((1,2,3),3)array([1, 2, 3, 1, 2, 3, 1, 2, 3]) >>> tile(a,2)array([[1, 2, 3, 1, 2, 3], [4, 5, 5, 4, 5, 5]]) >>> b=[1,3,5]>>>
2017-04-13 20:40:08
446
转载 Beta函数与Gamma函数及其与Beta分布的关系
相关函数在scipy.specialimport scipy.special as ssss.beta(x1, x2)1212相关分布(概率密度)在scipy.statsimport scipy.stats as stss.beta(a, b) # 随机变量1212β Function:B(x,y)=∫10tx−1(1−t)y−1dt
2017-04-12 15:12:14
4016
转载 MCMC(Markov Chain Monte Carlo)的理解与实践(Python)
理解MCMC及一系列改进采样算法的关键在于对马尔科夫随机过程的理解。更多详尽的讨论请参见 重温马尔科夫随机过程。对于给定的概率分布 π(x),我们希望能有便捷的方式生成它(π(x))对应的样本。由于马氏链能收敛到平稳分布,于是一个很nice的想法(by Metropolis, 1953)是:如果我们能够构造一个转移矩阵为 P的马氏链,使得该马氏链的平稳分布恰好是 π(x),那么我们从任
2017-04-12 15:09:21
5087
转载 机器学习算法的调试 —— 梯度检验(Gradient Checking)
反向传播算法很难调试得到正确结果,尤其是当实现程序存在很多难于发现的bug 时。举例来说,索引的缺位错误(off-by-one error)会导致只有部分层的权重得到训练(for(i=1; i 被漏写为 for(i=1; i),再比如忘记计算偏置项。这些错误会使你得到一个看似十分合理的结果(但实际上比正确代码的结果要差)。因此,仅从计算结果上来看,我们很难发现代码中有什么东西遗漏了。本节中,我
2017-04-12 10:17:40
744
转载 机器学习算法——SVD奇异值分解
一、SVD奇异值分解的定义 假设是一个的矩阵,如果存在一个分解:其中为的酉矩阵,为的半正定对角矩阵,为的共轭转置矩阵,且为的酉矩阵。这样的分解称为的奇异值分解,对角线上的元素称为奇异值,称为左奇异矩阵,称为右奇异矩阵。二、SVD奇异值分解与特征值分解的关系 特征值分解与SVD奇异值分解的目的都是提取一个矩阵最重要的特征。然而,特征值分解只适用于方
2017-04-11 19:12:30
461
转载 numpy 中的ndarray数组返回符合特定条件的索引方法
在numpy的ndarray类型中,似乎没有直接返回特定索引的方法,我只找到了where函数,但是where函数对于寻找某个特定值对应的索引很有用,对于返回一定区间内值的索引不是很有效,至少我没有弄明白应该如何操作。下面先说一下where函数的用法吧。(1)where函数的使用场景:例如现在我生成了一个数组:[html] view plain copy
2017-04-10 16:36:29
6806
转载 numpy 基础 —— np.linalg
(1)np.linalg.inv():矩阵求逆(2)np.linalg.det():矩阵求行列式(标量)np.linalg.norm顾名思义,linalg=linear+algebra,norm则表示范数,首先需要注意的是范数是对向量(或者矩阵)的度量,是一个标量(scalar):首先help(np.linalg.norm)查看其文档:norm(x, ord=None,
2017-04-09 17:09:39
2540
转载 TypeError: 'module' object is not callable 原因分析
程序代码 class Person: #constructor def __init__(self,name,sex): self.Name = name self.Sex = sex def ToString(self): return 'Name:'+self.Name+',Sex:'+s
2017-04-09 16:21:02
2080
转载 牛顿法
牛顿法相比梯度下降法速度更快,每次更新使损失以二次方的速度减少,因此称二次迭代,其原理如下:牛顿法至少有两个应用方向,1、求方程的根,2、最优化。牛顿法涉及到方程求导,下面的讨论均是在连续可微的前提下讨论。 1、求解方程。并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难。利用牛顿法,可以迭代求解。原理是利用泰勒公式,在x0处展开,且展开到一阶,即f(x)
2017-04-03 15:18:43
496
原创 局部加权平均-线性回归
定义:给定我们要预测的样本的特征,求该样本与训练样本集之间的距离作为相应训练样本权重,然后模型训练和线性回归一样特点:这样我们可以用局部线性函数近似非线性函数,但是,每个预测样本都要训练一个模型,时间复杂度较高
2017-04-03 11:39:26
1507
原创 梯度下降与随机梯度下降
梯度下降:假设 y=f(x)导数:dy>0 ,则随x增加y值变大,dy当我们最小化目标函数时,参数x用下式更新,alpha为常数x := x-alpha*dy当 dy>0 时 ,则随x增加y值变大,上式x值减小,则y值也减小当 dy同理,当我们最大化目标函数时,参数x用下式更新,alpha为常数x := x+alpha*dy随机梯度下降:每次用单个样
2017-04-02 17:13:46
470
转载 python 多线程
多线程和多进程是什么自行google补脑 对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂。所以,这里力图用简单的例子,让你对多线程有个初步的认识。 单线程 在好些年前的MS-DOS时代,操作系统处理问题都是单任务的,我想做听音乐和看电影两件事儿,那么一定要先排一下顺序。(好吧!我们不纠结在DOS时代是否有听音乐和
2017-04-01 18:37:38
257
转载 python 分词 jieba
源码下载的地址:https://github.com/fxsjy/jieba演示地址:http://jiebademo.ap01.aws.af.cm/特点1,支持三种分词模式: a,精确模式,试图将句子最精确地切开,适合文本分析; b,全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; c,搜索引擎模式,在
2017-03-30 16:33:27
857
转载 解读tensorflow之rnn
from: http://lan2720.github.io/2016/07/16/%E8%A7%A3%E8%AF%BBtensorflow%E4%B9%8Brnn/这两天想搞清楚用tensorflow来实现rnn/lstm如何做,但是google了半天,发现tf在rnn方面的实现代码或者教程都太少了,仅有的几个教程讲的又过于简单。没办法,只能亲自动手一步步研究官方给出的代码了。本文研
2017-03-27 20:55:35
505
原创 python zip
定义:zip([seql, ...])接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。1 >>> z1=[1,2,3]2 >>> z2=[4,5,6]3 >>> result=zip(z1,z2)4 >>> result5 [(1,
2017-03-26 20:05:21
331
转载 python poetrys
python sorted()使用python对列表(list)进行排序,说简单也简单,说复杂也复杂,我一开始学的时候也搞不懂在说什么,只能搜索一些英文文章看看讲解,现在积累了一些经验,写在这里跟大家分享,我们通过例子来详细解释一下函数sorted的具体用法:>>> a=[4,5,2,7,3,9]>>> b=sorted(a)>>> b[2, 3, 4, 5, 7, 9]
2017-03-23 14:11:49
465
原创 numpy下的flatten()函数用法
即返回一个折叠成一维的数组。但是该函数只能适用于numpy对象,即array或者mat,普通的list列表是不行的。例子:1、用于array对象12345678from numpy import * >>>a=array([[1,2],[3,4],[5,6]]
2017-03-20 17:56:29
10405
原创 tensorflow 一些常用函数的功能
tf.train.slice_input_producer(tensor_list, num_epochs=None, shuffle=True, seed=None, capacity=32, shared_name=None, name=None)Produces a slice of each Tensor in tensor_list.Implemented using
2017-03-20 10:51:17
1297
转载 TensorFlow文档索引
How-TosVariables: Creation, Initializing, Saving, and RestoringTensorFlow Mechanics 101TensorBoard: Visualizing LearningTensorBoard: Graph VisualizationReading DataDistributed TensorFlowThreading
2017-03-19 10:44:29
459
转载 TensorFlow----TensorBoard
以一个曲线拟合的小例子说明要使用TensorBoard,需要对程序添加那些额外的东西。程序:[python] view plain copy import tensorflow as tf import numpy as np # Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3 x
2017-03-18 15:36:38
352
原创 TensorFlow 变量共享
变量共享主要涉及到两个函数: tf.get_variable(, , ) 和 tf.variable_scope()。为什么要共享变量?例如如下代码:def my_image_filter(input_images): conv1_weights = tf.Variable(tf.random_normal([5, 5, 32, 32]), na
2017-03-18 13:37:49
4366
转载 tensorflow读取数据到队列当中
TensorFlow是一种符号编程框架(与theano类似),先构建数据流图再输入数据进行模型训练。Tensorflow支持很多种样例输入的方式。最容易的是使用placeholder,但这需要手动传递numpy.array类型的数据。第二种方法就是使用二进制文件和输入队列的组合形式。这种方式不仅节省了代码量,避免了进行data augmentation和读文件操作,可以处理不同类型的数据, 而
2017-03-17 16:22:25
1053
原创 python pass
pass语句在函数中的作用1、空语句,什么也不做2、在特别的时候用来保证格式或是语义的完整性当你在编写一个程序时,执行语句部分思路还没有完成,这时你可以用pass语句来占位,也可以当做是一个标记,是要过后来完成的代码。比如下面这样:>>>def iplaypython():>>> pass定义一个函数iplaypython,但函数体部分暂时还没有完成,又
2017-03-16 17:00:22
307
转载 Python进阶之“属性(property)”详解
Python中有一个被称为属性函数(property)的小概念,它可以:将类方法转换为只读属性class Person(object): """""" #---------------------------------------------------------------------- def__init__(self,
2017-03-16 16:35:02
330
原创 tensorflow shizhan
import tensorflow as tfimport numpy as npx=np.random.rand(100).astype("float32")y=x*0.1+0.3w=tf.Variable(tf.random_uniform([1],-1.0,1.0))b=tf.Variable(tf.zeros([1]))yy=w*x+bloss=tf.reduc
2017-03-16 16:13:16
542
转载 RELU 激活函数及其他相关的函数
http://blog.youkuaiyun.com/u013146742/article/details/51986575神经网络之激活函数(Activation Function)本博客仅为作者记录笔记之用,不免有很多细节不对之处。还望各位看官能够见谅,欢迎批评指正。更多相关博客请猛戳:http://blog.youkuaiyun.com/cyh_24如需转载,请附
2017-03-02 14:33:49
391
转载 CNN 自写代码调参经验
对非线性函数的一个最成功的改进就是纠正线性单元(Rectified Linear Units,ReLU),其作用是如果卷积计算的值小于0,则让其等于0,否则即保持原来的值不变。这种做法所谓是简单粗暴,但ReLU使网络的激活具有了稀疏的特性,实验说明一切。起因从去年开始接触神经网络,觉得CNN结构很简单没什么难的,直到有一天被一位拿过信息竞赛金牌的学弟鄙视了……中期答
2017-02-28 15:30:51
1599
转载 卷积神经网络池化层和卷积层作用
链接:https://www.zhihu.com/question/36686900/answer/130890492个人觉得主要是两个作用:1. invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)2. 保留主要的特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合,提高模型泛化能力(1
2017-02-28 11:08:12
31698
原创 Auto-Encoding Variational Bayes
利用自编码机制解释也可以说创建新的Variational Bayes算法(主要在于对变分下界提出一种新的近似求解方法)
2016-09-01 10:40:07
852
原创 RBM深层理解
要理解RBM,不得不首先理解什么是热平衡状态(thermal equilibrium), The thing that settles down is the probability distribution(P(v,h)) over configurations(给定可见层和隐层单元的一个指派). That's a difficult concept the first time you m
2016-08-30 10:32:08
710
原创 ubuntu16.04+ cuda8.0: 安装 opencv 3.0
配置好 cuda8.0之后,安装 opencv 3.0 换个目录解压opencv安装步骤:cd opencv-3.0.0mkdir release cd release cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. make
2016-08-04 10:39:09
2274
原创 torch 安装
git clone https://github.com/torch/distro.git ~/torch --recursivecd ~/torchbash install-deps./install.sh将路径手动添加到PATH变量中:source ~/.bashrc可以输入gedit ~/.bashrc打开该文件,看到文件末尾有这样一行代码: . /home/liu/
2016-08-01 20:29:45
522
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人