python
autoliuweijie
这个作者很懒,什么都没留下…
展开
-
Pytorch IterableDataset的使用
Pytorch IterableDataset的使用Pytorch IterableDataset的使用背景当数据量特别大,无法一次性load进内存时,Pytorch里的Dataset就无法胜任了,此时需要使用IterableDataset.基本用法只需要实现__init__()、__iter__()和__len__(),模版如下:from torch.utils.data import IterableDataset, DataLoaderclass MyIterableDataset(I原创 2021-12-03 10:51:30 · 9037 阅读 · 0 评论 -
[matplotlib] 绘制Cross-Validation的误差图
概述:在调整模型参数的时候,往往会进行交叉验证(Cross-Validation)。绘制交叉验证的误差图。数据:k是需要调整的参数, 从k_choices中选取k_choices = [1, 3, 5, 8, 10, 12, 15, 20, 50, 100]假设经过验证以后k_to_accuracies字典里保存了k取不同值时多次验证的准确性:k_to_accuracies = { 1:原创 2016-07-20 17:52:23 · 4118 阅读 · 0 评论 -
[numpy]random.choice()随机选取内容
概述:可以从一个int数字或1维array里随机选取内容,并将选取结果放入n维array中返回。说明:numpy.random.choice(a, size=None, replace=True, p=None)a : 1-D array-like or int If an ndarray, a random sample is generated from its elements.原创 2016-07-21 14:27:39 · 128591 阅读 · 4 评论 -
设计模式:0. 设计原则
0. 写在前面本项目为研一时《设计模式》课程的总结与扩展,课程教授为北京大学软件工程中心王亚沙教授,参考书为王老师的课件以及四人帮的《设计模式-可复用面向对象软件的基础》。我将在本工程中用C++语言和python语言实现一些常用的设计模式,用于巩固理解和后续查询。另外值得一题的是,许多设计模式是基于java或c++给出的,用来弥补编译器层面上的语言不足。而python这类的高级语言有的时候以及将这些原创 2015-12-16 12:31:36 · 533 阅读 · 0 评论 -
设计模式:1. 门面模式(Facade)
Facade Pattern1. 介绍1.1 针对问题系统复杂某个系统或者类过于复杂, 使用者需要详细了解内部结构才懂得使用.1.2 解决方法UML图1.3 优点降低用户使用系统的难度用户不需要对系统内部有足够多的了解, 只需要简单地设置即可.2. 例子2.1 需求需求描述照相机需要设置闪光灯, 焦距, 光圈等参数才可以使用. 调节这些参数配合需要专业的知识, 设计一套方案使得调用者只原创 2016-01-14 16:04:04 · 630 阅读 · 0 评论 -
用numpy.rollaxis改变图片轴次序
问题有些数据集的图片默认图片格式是[chanel][height][width], 然而有些地方显示图片是[height][width][chanel], 这就需要改变一下图片轴的次序。numpy.rollaxis()方法old_img是3*32*32的,new_img是32*32*3的newimg = np.rollaxis(old_img, 0, 3) # 把轴0放到轴3的位置其他如果只是为了原创 2016-12-05 13:59:23 · 9986 阅读 · 1 评论 -
jupyter notebook远程访问
启动的时候加上ip和端口$ jupyter notbook --ip 0.0.0.0 --port 9999这个时候你就可以在其他电脑上通过http://那台电脑的ip:9999访问了原创 2016-12-27 09:48:19 · 1648 阅读 · 0 评论 -
[转] MySQLdb进一步封装,解决连接断开问题
本文转自:http://blog.csdn.net/wzm112/article/details/7745835Python链接MySQL中没有长链接的概念,但我们可以利用mysql的ping机制,来实现长链接功能~ 思路: 1 python mysql 的cping 函数会校验链接的可用性,如果连接不可用将会产生异常 2 利用这一特性,构造一个连接丢失的循环,不断尝试连接数据库,直转载 2017-03-01 18:40:26 · 1767 阅读 · 0 评论 -
Selenium + phantomJS 爬取动态网站
受同学委托,帮忙爬新浪微博的微博和评论内容。发现这是一个动态网站,我前端技术不行,搞不懂它的ajax接口,所以不能直接用requests包爬了。后来了解到Selenium可以模拟浏览器(Firefox, phantomJS等)的点击,然后用Beautifulsoup解析HTML,Selenium是爬动态网站的神器!phantomJS是一个没有界面的浏览器,用来爬虫最合适了。把Selenium用到的一原创 2017-07-13 19:59:46 · 1215 阅读 · 0 评论 -
MacOs + Virtualenv + ipython notebook下使用matplotlib
0.错误在MacOs + Virtualenv + ipython notebook下使用matplotlib的时候会出现如下错误**RuntimeError**: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not i原创 2016-12-01 18:48:08 · 1443 阅读 · 0 评论 -
创建python3的virtualenv
创建python3的virtualenv方法有两种,第一种方法和python一样,使用virtualenv命令。第二种方法是python3 -m venv命令。第一种方法创建的virtualenv中使用matplotlib会出现各种问题,所以建议使用第二种方法。方法1(不推荐):与python2.7类似,前提本机已经安装好python3。$ virtualenv --python=python3 .原创 2017-11-02 13:13:56 · 2646 阅读 · 0 评论 -
pycharm远程开发与调试
pycharm远程开发与调试0. 为pycharm添加远程服务器配置如果你已经为该服务器配置过远程服务器,可忽略此步骤。打开pycharm,tools->Deployment->Configuration, 在左边栏点“+“号添加远程服务器。右边配置如下图,只需要配置connection,注意”Visible only for this project”的勾去掉!...原创 2018-06-15 10:49:38 · 11623 阅读 · 1 评论 -
[numpy]split()和array_split()
概述:可以用于把narray分成几份。示例:numpy.plit(ary, indices_or_sections, axis=0)>>> x = np.arange(9.0)>>> np.split(x, 3)[array([ 0., 1., 2.]), array([ 3., 4., 5.]), array([ 6., 7., 8.])]>>> x = np.arange(8.原创 2016-07-20 14:56:10 · 19541 阅读 · 0 评论 -
[numpy]matrix和array的乘和加
1. 对于数组array乘就是对应位置的元素相乘:X1 = np.array([[1,2], [3, 4]])X2 = X1print X2*X1[[ 1 4] [ 9 16]]加就是对应位置的相加:X1 = np.array([[1,2], [3, 4]])X2 = X1print X2+X1[[2 4] [6 8]]2. 对于矩阵matrix乘就是矩阵的点乘:X1 = np.m原创 2016-07-20 12:58:28 · 30579 阅读 · 1 评论 -
virtualenv 的常用命令
安装virtualenv:$ sudo pip install virtualenv 创建env环境$ virtualenv .env启动env的环境$ source .env/bin/activate为env安装依赖库$ pip install lib_name批量安装依赖库$ pip install -r requirements.txtrequirements.txt内容如下:![r原创 2016-07-19 10:25:09 · 1244 阅读 · 0 评论 -
[转]《设计模式》python实现
原文: http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html一、简单工厂模式模式特点:工厂根据条件产生不同功能的类。程序实例:四则运算计算器,根据用户的输入产生相应的运算类,用这个运算类处理具体的运算。代码特点:C/C++中的switch…case…分支使用字典的方式代替。 使用异常机制对除数为0的情况进行处理转载 2015-12-16 11:33:29 · 645 阅读 · 0 评论 -
[梳理]协方差、方差、相关系数
1. 定义:两个随机变量X与Y。1.1 协方差Cov(X, Y)用来衡量两个随机变量的相关程度,定义式:Cov(X,Y)=E{ [ X-E(X) ] [ Y-E(Y) ] }当Cov(X,Y)>0时,称X与Y正相关;当Cov(X,Y)=0时,称X与Y不相关;当Cov(X,Y)<0时,称X与Y负相关;1.2 方差Var(X)用来衡量随机变量X的离散程度,定义式Var(X) = Cov(X,X)V原创 2016-01-04 16:11:21 · 6394 阅读 · 0 评论 -
Python Class的实例属性/类属性
1. 类属性定义:直接定义在类内部的属性为类属性,为这个类对象所有,所有类的实例可以访问。class MyClass(object): class_attribute = "class_attribute"访问:类名.属性名MyClass.class_attribute = "new_name"实例名.属性名instance_class = MyClass()print instanc原创 2016-01-21 19:11:35 · 2063 阅读 · 0 评论 -
Python Class 的实例方法/类方法/静态方法
1. 定义实例方法、类方法、静态方法class MyClass(object): class_name = "MyClass" # 类属性, 三种方法都能调用 def __init__(self): self.instance_name = "instance_name" # 实例属性, 只能被实例方法调用 self.class_name = "ins原创 2016-01-21 19:35:31 · 6220 阅读 · 0 评论 -
[笔记]Python class中的__call__()方法
概要Python中,如果在创建class的时候写了call()方法, 那么该class实例化出实例后, 实例名()就是调用call()方法。例子class Animal(object): __call__(self, words): print "Hello: ", wordsif __name__ == "__main__": cat = Animal() c原创 2016-01-06 15:02:52 · 14447 阅读 · 0 评论 -
python 文本单词提取和词频统计
strip_html(cls, text) 去除html标签 separate_words(cls, text, min_lenth=3) 文本提取 get_words_frequency(cls, words_list) 获取词频class DocProcess(object): @classmethod def strip_html(cls, text): ""原创 2016-02-18 17:12:04 · 13820 阅读 · 0 评论 -
用内置max(),min()获得可迭代对象的最值及其index
代码def squre(a): return a*anumbers = [1, 2, 3, 4]most = max(numbers, key=squre)# if you want to get the index most_index numbers.index(most)其他min()同理如果是numpy.narray对象,numpy.narray.argmax()可以获得下标。原创 2016-04-04 15:38:18 · 608 阅读 · 0 评论 -
python CSV模块使用笔记
import csvcsv.reader:reader(csvfile[, dialect=’excel’][, fmtparam])reader = csv.reader(file('glucoseData.csv', 'rb'))for line in reader: print line>>['l490', 'l660', 'l730', 'l850', 'l930', 'gluc原创 2015-12-13 21:00:45 · 1609 阅读 · 0 评论 -
Python 通过Jpype调用Java类
http://iacobelli.cl/blog/?p=119 这里写的很清楚原创 2016-05-31 14:37:13 · 1159 阅读 · 1 评论 -
python matplotlib 绘制双Y轴曲线图
要点就是ax2 = ax1.twinx(), 制作一个兄弟轴。代码如下:import matplotlib.pyplot as pltimport numpy as npx = np.arange(0., np.e, 0.01)y1 = np.exp(-x)y2 = np.log(x)fig = plt.figure()ax1 = fig.add_subplot(111)ax1.plot(x原创 2016-06-06 11:36:11 · 92444 阅读 · 6 评论 -
OpenCV训练自己的人脸检测级连分类器并测试
0. 概述分为如下几步:step1. 制作训练数据集step2. 训练分类器step3. 使用分类器进行分类1. 准备工作建立一个项目目录objection_detection/$ mkdir objection_detection/$ cd objection_detection/建立一个训练数据集目录train_img_set/用于存放训练图片$ mkdir train_img_set/原创 2016-07-14 17:26:29 · 16279 阅读 · 3 评论 -
如何正确开始一个python项目(django为例)
写在前面:如果随意创建一个python项目,那么该项目往往会很依赖本地的环境,当项目移植到其他机器上,往往会出现兼容性问题(python版本不一致,缺少包等)。本文以django项目为例介绍如何开始一个python项目,包括创建干净的python虚拟环境,安装需要的包,创建工程,git托管4个步骤。0. 准备工作:本机先需要安装好python2.*,git,virtualenv工具。关于如何安装,方原创 2015-12-13 21:29:20 · 5500 阅读 · 0 评论