python
一江明澈的水
从入门到放弃,绝对不会忽悠
展开
-
t-sne数据降维与可视化工具使用
1.降维方法:特征降维方法包括:Lasso,PCA,小波分析,LDA,奇异值分解SVD,拉普拉斯特征映射,SparseAutoEncoder,局部线性嵌入LLE,等距映射Isomap。然而t-SNE方法是目前最好的降维方法。1.1现在降维方法分为线性方法和非线性方法如图2.t-SNE简介和原理:t-SNE(t-distributedstochasti...原创 2019-11-15 17:17:18 · 2527 阅读 · 3 评论 -
使用VScode配置python,并打包成.exe文件
用够了pdb.set_trace()来调试python程序了。可以考虑用VS Code来集成python的开发环境,实现像c一样的可视化调试,可以增加watch,双击打断点,看变量实时的数值,很方便,也很酷。这个博客写的简单明了,我就化身他人文章搬运工吧,我会稍作修改。一、配置vscode Python环境1. 点击左下角的图标,在弹出的菜单中选择extensions,在左上方搜索框内...原创 2019-11-15 17:16:30 · 10392 阅读 · 0 评论 -
windows下部署caffe版的py-faster-rcnn(GPU版本)
折腾了三天整,终于搞明白了windows下py-faster-rcnn安装。一度想要从入门到放弃。本人在ubuntu上复现了FAIR的 detectron ,以及RBG的py-faster-rcnn,按照网上或者我博客里的教程可以比较轻松地实现。可是唯独windows版的py-faster-rcnn复现部署是个坑,原因有以下三点:1. RBG不再更新py-faster-rcnn,导致fast rc...原创 2018-03-30 16:15:29 · 2241 阅读 · 2 评论 -
python内存监控工具memory_profiler和guppy的用法
python2.7在内存管理上相比python3还是有些坑的,其释放后的内存仍然保留在python的内存池中,不被系统所用。python循环引用的变量不会被回收,这会导致程序越运行,占用的内存越大。我在跑py-faster-rcnn的demo时,基本上跑2000张图像,16g内存就要爆了。于是尝试用python的内存监控工具来调试程序,找到不能膨胀的变量,然后del之,再手动回收内存gc.coll...转载 2018-03-26 20:16:44 · 30678 阅读 · 3 评论 -
python 迭代器yield用法实例
1. 概念:yield是python中的一个generator(生成器), 是一个类似子函数中的 return 的关键字,只是这个子函数返回的是个生成器。当调用这个子函数的时候,子函数内部的代码并不立马执行 ,这个子函数只是返回一个生成器对象当你使用for进行迭代的时候,子函数中的代码才会执行在这里,所有的值都存在内存当中,所以并不适合大量数据2. 实例:可以用于子函数中变量的迭代式返回(子函数返...原创 2018-06-29 11:18:48 · 2424 阅读 · 0 评论 -
python3 基础语法-迭代器(iteration),生成器(yield,generator)
迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器创建一个迭代器把一个类作为一个迭代器使用需要在类中实现两个方法 __iter__...原创 2019-11-19 11:01:44 · 125 阅读 · 0 评论 -
从"把大象放冰箱"理解递归调用
递归算法中递是"去"的意思, 归是"回"的意思, 整个递归就是"有去有回"的过程.什么样的问题要用递归来解决?一句话: 对于问题N,如果N-1已经解决了,那么N是否很容易解决。学递归调用要明确以下三点:1、整个递归的终止条件是什么?2、应该返回给上一级的的返回值是什么?3、一级递归要做什么?(重复逻辑)其实2可以和3合并:1.递归终止条件2.把问题规模缩小...原创 2019-07-10 20:33:35 · 658 阅读 · 0 评论 -
Leetcode(easy)解题思路
1. 两数之和用字典构造哈希表dict,key是给定数组nums的成员,value为nums成员的索引。然后在dict中依次查找是否有target-nums[i]学习语法:dict.has_key(target-nums[i]) python3改为 in7.整数反转取绝对值,再模10取余,构造新的反转整数,再判断是否在int32范围内-2147483648 到2147483647之...原创 2019-11-19 11:02:50 · 337 阅读 · 0 评论 -
memory_profiler
https://blog.csdn.net/qq_16912257/article/details/53350286(1) 安装psutil,memory_profilerpip install psutilpip install memory_profiler(2) 代码里 首先添加 from memory_profiler import profile然后在某个函数上添加装饰器@pr...转载 2018-03-23 18:25:16 · 1302 阅读 · 0 评论 -
Ubuntu16.04+Cuda8.0+cuDNN6配置py-faster rcnn
0前言Faster R-CNN是任少卿2015年底推出的目标检测算法 ,时至今日依旧还是Object Detection领域最好方法之一,基于该框架后续推出了 R-FCN,Mask R-CNN 等改进框架,但基本结构变化不大。同时不乏有SSD,YOLO2等骨骼清奇的新作,虽然在速度上大幅度领先Faster R-CNN,尤以SSD lite和yolo lite为甚, 但精度上依然以Faster R-...原创 2018-03-14 18:27:05 · 1272 阅读 · 0 评论 -
python 中append与join用法
append是list(列表)的方法,函数参数是可以是任意一个元素,作用是在列表的最后添加上这个新元素。例如a=[1,2,3]则a.append(4)以后a就是[1,2,3,4]join是string(字符串)的方法,函数参数是一个由字符串组成的列表比如['a','b','c'],作用是用字符串把这个字符串列表里的字符串连接起来,比如:a='-'则a.join(['a','b','c'])='a-原创 2017-09-19 10:30:37 · 4719 阅读 · 0 评论 -
Python中的几种矩阵乘法
1. 同线性代数中矩阵乘法的定义: np.dot()np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵乘积,同线性代数中矩阵乘法的定义。对于一维矩阵,计算两者的内积。见如下Python代码:import numpy as np# 2-D array: 2 x 3two_dim_matrix_one = np.array([[1, 2, 3], [4, 5, 6]])#转载 2017-09-27 13:15:49 · 2113 阅读 · 0 评论 -
python中的矩阵运算
python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。1.numpy的导入和使用from numpy import *;#导入numpy的库函数import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。2.矩阵的创建由一维或二维数据创建矩阵>>> from numpy转载 2017-09-27 13:41:17 · 539 阅读 · 0 评论 -
python: extend (扩展) 与 append (追加) 的差别
转帖:http://justjavac.iteye.com/blog/1827915 1 >>> li = ['a', 'b', 'c'] 2 >>> li.extend(['d', 'e', 'f']) 3 >>> li 4 ['a', 'b', 'c', 'd', 'e', 'f'] 5 >>> len(li)转载 2017-09-19 16:57:20 · 1067 阅读 · 0 评论 -
Python格式化输出%s和%d
python print格式化输出。1. 打印字符串print ("His name is %s"%("Aviad"))效果:2.打印整数print ("He is %d years old"%(25))效果:3.打印浮点数print ("His height is %f m"%(1.83))效果:转载 2017-09-20 16:53:51 · 3616 阅读 · 0 评论 -
《机器学习实战》 CH3 决策树基本原理与实现
决策树基本原理可以概括为:通过计算信息增益划分属性集,选择增益最大的属性作为决策树当前节点,依次往下,构建整个决策树。为了计算熵,需要先计算每个属性的信息增益值,通过下面公式计算: 创建数据集:def createDataSet(): dataSet = [ [1, 1, 'yes'], [1, 1, 'yes'], [1转载 2017-09-20 17:02:32 · 276 阅读 · 0 评论 -
scikit-learn的主要模块和基本使用
引言对于一些开始搞机器学习算法有害怕下手的小朋友,该如何快速入门,这让人挺挣扎的。在从事数据科学的人中,最常用的工具就是R和Python了,每个工具都有其利弊,但是Python在各方面都相对胜出一些,这是因为scikit-learn库实现了很多机器学习算法。加载数据(Data Loading)我们假设输入时一个特征矩阵或者csv文件。首先,数据应该被载入内存中。scikit转载 2017-09-29 14:07:30 · 202 阅读 · 0 评论 -
【机器学习】分类算法之决策树(Decision tree)
3.1、摘要 在前面两篇文章中,分别介绍和讨论了朴素贝叶斯分类与贝叶斯网络两种分类算法。这两种算法都以贝叶斯定理为基础,可以对分类及决策问题进行概率推断。在这一篇文章中,将讨论另一种被广泛使用的分类算法——决策树(decision tree)。相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置,因此在实际应用中,对于探测式的知识发现,决策树更加适用。转载 2017-09-21 16:09:51 · 547 阅读 · 0 评论 -
【机器学习】分类算法之朴素贝叶斯分类(Naive Bayesian classification)
0、写在前面的话 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感。而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是我在其它地方体会不到的。 一直想写关于算法的博文,也曾写过零散的两篇,但也许是相比于工程性文章来说太小众,并没有引起大家的兴趣。最近面临毕业找工作,为了能给自己增加筹码,决定再次复习算法方面的知转载 2017-09-21 16:11:41 · 630 阅读 · 0 评论 -
theano 实现图像局部对比度归一化
很多时候我们需要对图像进行局部对比度归一化,比如分块CNN的预处理阶段。theano对此提供了一些比较方便的操作。局部归一化的一种简单形式为:其中μ和σ分别为局部(例如3x3的小块)的均值和标准差。利用代码说明一下如何实现:import theanoimport numpyfrom theano.sandbox import neighboursfrom theano转载 2017-10-10 10:16:06 · 1430 阅读 · 0 评论 -
Python中的split()函数的用法
python文件操作语法转载 2017-09-19 10:20:53 · 28334 阅读 · 5 评论