- 博客(118)
- 资源 (13)
- 收藏
- 关注
原创 [机器学习与深度学习] - No.6 ImageNet数据集预处理方式
使用Keras imagenet 图片识别模型,精度和官方精度存在差异
2020-04-03 17:52:13
2541
2
原创 [Python实战] - No.15 Python中的反射
Python反射这篇文章没有系统地解释什么是反射以及完整的Python反射机制,仅仅作为我之前使用反射解决问题的一个记录。假设我们有以下文件:E:.│├─package1│ main.py│ people.py│ __init__.py│└─package2animal.py__init__.pypackage1.people中的代码如下...
2019-10-24 09:43:02
280
原创 [机器学习与深度学习] - No.5 ILSVRC2012_img_val数据集的使用
ILSVRC2012_img_val数据集的使用在之前使用Imagenet 2012的Validation数据集的时候,遇到了数据集图片和下载的标签文件不对应的问题,困扰了一段时间,后来终于解决了,在这里记录一下。ILSVRC2012_img_val数据的正确姿势:下载数据集和正确的label:下载数据集:数据集地址:http://www.image-net.org/challeng...
2019-06-09 16:32:30
8704
7
原创 [Python 实战] - No.14 Python-Redis中的编码问题
Python-Redis中的编码问题最近在写代码的时候,因为redis的编码的问题,debug了一天,最后终于搞清楚了python-redis中遇到的那些坑。在这里记录一下:python中如何连接redis: value = value.decode(self.encoding, self.encoding_errors)UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start b
2019-05-14 11:55:34
4332
4
原创 [机器学习与深度学习] - No.4 Normalization和Standardization的区别
Normalization和Standardization的区别写在前面:Normalization和Standardization在很多时候,很多文章中并不区分,甚至会使用scaling来代替上述两个词。在这里我们针对两种方法,做一些细微的区分。Normalization:将我们的数据值的范围限定在[0,1]之间,也就是我们将常说的归一化。在机器学习的算法中,我们经常会遇到这种情况:...
2019-05-09 16:43:55
753
原创 [Python 实战] - No.13 Python高级编程
Python高级编程记录一下python中几种比较高效、简洁的编程方法变量交换:在其他语言中,我们进行变量交换一般都是使用一个临时存储变量tmp,然后将a,b的变量值进行交换。但是python独有一种超级简单的变量交换的方法。a = 5b = 10print(a,b)b,a = a,bprint(a,b)'''5 1010 5'''还有几种其他的有有趣的方式进行变量...
2019-04-15 17:02:31
867
原创 [Pandas 学习笔记] - No.1 pandas学习笔记
pandas学习笔记pandas是基于numpy开发出的数据分析包,用于高效地操作大型数据集。pandas的数据结构有三种 分别为 series,dataframe和panel,对应一维,二维,三维数据。 其中datafram最为常用,我们仅对dataframe进行记录。dataframe其实就是一个形似数据库中的table一样的数据结构,我们可以从列表,字典,series和numpy nda...
2019-03-16 15:00:20
801
原创 [NumPy 学习笔记] - No.3 NumPy数值运算及矩阵操作
numpy学习笔记numpy是python中非常有用的一个库,我们可以使用numpy创建大型的高维数组并进行运算。这里记录一下numpy一些常用的方法。如果想仔细研究numpy的强大功能还需要翻阅NumPy API文档数组运算基本运算在numpy中,最基本的运算是加减,即对应位置元素做加减法;注意我们提到的运算是shape相同的两个变量之间的运算。# 基本运算x = np.array(...
2019-03-14 21:41:55
676
原创 [NumPy 学习笔记] - No.2 NumPy数据索引
numpy学习笔记numpy是python中非常有用的一个库,我们可以使用numpy创建大型的高维数组并进行运算。这里记录一下numpy一些常用的方法。如果想仔细研究numpy的强大功能还需要翻阅NumPy API文档数组索引常见索引对数组最简单的索引就是常见的[]索引# 索引x = np.array([1, 2, 3])print ("x[0]: ", x[0]) # x[0]:...
2019-03-14 21:34:00
510
1
原创 [NumPy 学习笔记] - No.1 使用NumPy创建数组
numpy是python中非常有用的一个库,我们可以使用numpy创建大型的高维数组并进行运算。这里记录一下numpy一些常用的方法。如果想仔细研究numpy的强大功能还需要翻阅NumPy API文档创建数组import numpy as np创建标量我们使用numpy来创建一个简单的数字# 创建一个float类型的数字x = np.array(6.0) # 稍后会解释什么叫np.a...
2019-03-14 21:29:03
299
原创 [django学习记录] - No.1 使用django创建一个简单的API
Django学习记录1. 创建Django项目使用pycharm的话可以直接选择django 项目。如果想要使用命令行,可以在命令行中输入以下命令:django-admin startproject myproject其中myproject是你的项目名称。不过我们更推荐用pycharm。因为使用命令行原生的项目,需要自己手动创建一些项目,和补全一些配置文件的选项。然后你就会得到一个如下...
2019-02-28 15:33:09
365
原创 [机器学习与深度学习] - No.3 机器学习中的性能度量指标
机器学习中的性能度量指标对机器学习、深度学习中的学习器的泛化性能进行评估,不仅仅需要有效可行的实验方法,还需要有衡量模型泛化能力的评价标准。这就是性能度量指标。在回归任务中,我们使用均方误差来衡量性能;在分类任务中,我们使用错误率、精度、查全率、查准率、F1度量、P-R曲线、ROC-AUC等指标来衡量模型。本文重点记录了分类任务的度量指标。我们假设在预测任务中:给定样例集合D=(x1,x1),...
2019-01-24 11:39:10
779
原创 [设计模式] - No.12 Strategy模式
Strategy模式Strategy模式又称策略模式,在策略模式中,我们将特定的算法封装起来,从而实现整体地替换算法的功能,以便我们能够按照不同的算法去解决同一个问题。《图解设计模式》这本书中的,策略模式这一章提供的代码示例有些冗长,所以我参考了这篇文章,编写了一个简单的例子,用较少的代码解释什么是策略模式。假设我们有一个场景,在商场中针对不同的客户的身份,提供不同的优惠方案,最简单的一种实现...
2018-12-13 11:49:34
226
原创 [设计模式] - No.11 Bridge模式
Bridge模式在学习Bridge模式的时候,一直想不通这个模式的具体应用场景,不知道为什么要使用这个模式,直到今天又重新看了一遍《图解设计模式》课后的讲解加上自己的思考,才对这个模式有了更深的理解。假设我们有这样一个场景,我们希望实现某种打印字符串的功能,这个功能在Windows,Mac和Linux上都可以使用,那么最简单的实现方案是我们实现三个类WindowsPrint,MacPrint和...
2018-12-13 11:45:37
247
原创 [设计模式] - No.10 Builder模式
Builder 模式在《图解设计模式》这本书中,对Builder模式的解释是,用于组装具有复杂结构的实例的设计模式。在这里,我通过一个接地气的小例子,来描述一下Builder设计模式究竟做了什么。加入有一天,你突然想盖一栋别墅,首先你需要找一个会盖房子的建筑师,告诉他“给我盖一个别墅”,让他帮你盖这栋房子。建筑师并不会直接的盖房子,他只会指挥施工队盖房子。它会指挥调度施工队,先打好地基,然后...
2018-12-04 10:34:09
189
原创 [设计模式] - No.9 Prototype模式
Prototype 模式在Java中,如果我们一般使用new XXClass()的方式获取一个实例。而Prototype提供了这样一种方式,既不通过new的方式获取实例,同时和工厂方法获取实例的方法不同。该模式使用类对应的对象来产生新的实例。在介绍Prototype模式之前,我们要首先介绍Java中的clone()和Cloneable。我们知道,在java中,所有的类都继承于一个叫Object...
2018-12-04 10:30:29
253
原创 [设计模式] - No.8 Singleton模式
Singleton模式在程序运行的时候常常是使用new的方法创建一个实例。对于某一个类(例如工具类),如果我们希望在任何情况下该类只有一个实例的话,我们需要使用单例模式。单例模式是很简单又被广为使用的一个设计模式:public class Singleton { //饿汉模式 private static Singleton singleton = new Singleton...
2018-12-04 10:05:45
185
1
原创 [设计模式] - No.7 Factory Method 模式
Factory Method 模式Factory Method模式和之前的Template Method模式有相似的地方。在Template Method中,我们在父类中使用模板方法用于定义具体的处理流程,如果我们使用这个具体方法来产生子类实例的话,这样就是Factory Method 模式。我们结合书中的示例代码来看(修改了一些)AbstractFactory.javapublic abs...
2018-12-04 10:03:32
235
原创 [设计模式] - No.6 Template Method 模式
Template Method顾名思义,就是说父类在其内部定义了一些抽象函数,然后定义了一个模板方法,并在模板方法中调用了这些抽象方法。父类在模板方法中定义了某个功能处理流程的框架,而子类则实现具体的处理。这个例子非常简单,其核心的理念就是使逻辑处理通用化。我们通过书中的一个简单的例子来看一下Template Method的具体实现方法:首先,我们定义一个父类AbstarctDisplay.j...
2018-11-23 17:08:55
184
原创 [设计模式] - No.5 Adapter模式
Adapter模式1. 什么是Adapter模式Adapter模式中文名称叫适配器模式,就像我们的电脑电源适配器将直流电源转换为交流电源一样,适配器模式可以将我们现有的某些已经具备相关类,转换为我们需要的类型。Adapter模式又称为Wrapper模式,相信这个名词很多做过Java Web项目的同学并不陌生。当我们从数据库中查询出来的数据虽然具备了我们需要的一些字段,但是并不能直接被某些接口使...
2018-11-23 17:06:00
169
原创 [设计模式] - No.4 Iterator 模式
Iterator 模式本系列的文章主要是记录设计模式的学习过程,围绕《图解设计模式》和我自身对于设计模式的理解。在文章中出现的代码多为《图解设计模式》这本书中的代码。书中一共包含23个设计模式,这篇文章作为这个系列的第一篇文章。由于《图解设计模式》这本书内容十分简单,非常适合入门,如果对于设计模式想要进一步地研究,可以参阅一些其他书籍。Iterator模式是一种非常简单的设计模式,其设计出来的...
2018-11-23 17:03:54
168
原创 [Spring Boot实战系列] - No.6 Springboot PageHelper实现后台分页
Springboot PageHelper实现后台分页PageHelper是一个很强大的分页插件,在Springboot的项目中,如果后台突然需要改为分页返回,甚至无需更改过多代码即可获得分页的结果。1. 前期代码准备创建一个springboot项目,配置数据库以及mybatis,配置过程参考之前的文章。在pom.xml中添加PageHelper的依赖。创建User实体,UserMapper...
2018-10-23 19:35:28
513
原创 [Spring Boot实战系列] - No.5 Spring boot AOP 示例
Spring boot AOP 示例在之前的文章中,介绍过Spring 的AOP与AspectJ相关的内容。最近实验室的一个项目又用到了springboot的AOP,在网上调研了一下发现了几个配置极其简单但功能很完善的示例,在这里总结一下。AOP相关的原理及含义不再解释,参考之前的文章。1. 前期代码准备创建一个Springboot项目,在项目中编写一个IndexController,一个U...
2018-10-23 13:02:56
238
原创 [Python 实战] - No.12 Python 中的正则表达式使用
1. Python中如何使用正则表达式Python中使用正则表达式的步骤如下:使用import re导入正则表达式模块使用re.compile()创建一个对象使用Regex对象的search()方法,传入一个字符串,然后返回一个Match对象调用Match对象的group()方法,返回文本中匹配该正则表达式的字符串示例如下,查找学生姓名中姓Zhang的同学姓名impo...
2018-09-07 17:24:26
375
原创 Ubuntu 18.04 NVIDIA驱动安装总结
最近遇到了在Ubuntu 18.04上安装NVIDIA的情况,看到一篇英文教程讲解的很好,简单翻译一下拿来收藏。在Ubuntu 18.04上安装NVIDIA有三种方法:使用标准Ubuntu仓库进行自动化安装使用PPA仓库进行自动化安装使用官方的NVIDIA驱动进行手动安装上述三种方法均可用,我个人更习惯于使用手动安装。注意:在安装之前首先就是要禁用Nouveau的驱动,...
2018-06-29 21:57:48
129476
18
原创 [Thinking in Java] - No.11 Java控制台进度条
java实现控制台的进度条,其实就是将之前每一行打印的进度条,反复的打印在同一行上,实现视觉上的进度条增长的效果。package com.ccd.ym.util;import java.text.DecimalFormat;public class ConsoleProgressBar { private long minimum = 0; // 进度条起始值 private long
2018-05-03 10:24:51
2531
1
原创 [机器学习与深度学习] - No.2 遗传算法原理及简单实现
遗传算法(Genetic Algorithm),顾名思义,就是模拟物种进化的过程,遵循“物竞天择,适者生存”的原则,随机化搜索的算法。遗传算法模拟种群演化过程,经历“选择”,“基因交叉”,“变异”等过程。遗传算法不保证一定能得到解,如果有解也不保证找到的是最优解,但若干代以后,理想状态下,染色体的适应度可能达到近似最优的状态。遗传算法的最大优点就是,我们不需要知道怎么去解决一个问题,获得最优解...
2018-04-11 16:08:32
3146
原创 [Python 实战] - No.11 Python Struct 模块使用
Python提供了一个struct模块来解决bytes和其他二进制数据类型的转换 函数 return explain pack(fmt,v1,v2…) string 按照给定的格式(fmt),把数据转换成字符串(字节流),并将该字符串返回. pack_into(fmt,buffer,offset,v1,v2…) None 按照给定的格式(fmt),将数据转换成字符串
2018-03-26 17:00:50
320
原创 [机器学习与深度学习] - No.1 基于Negative Sampling SKip-Gram Word2vec模型学习总结
基于Negative Sampling SKip-Gram Word2vec模型学习总结1. Word2vec简介Word2Vec是从大量文本语料中以无监督的方式学习语义知识的一种模型,它被大量地用在自然语言处理(NLP)中。那么它是如何帮助我们做自然语言处理呢?Word2Vec其实就是通过学习文本来用词向量的方式表征词的语义信息。Word2vec的结果是为了获得Word Embedd...
2018-03-17 20:27:53
3806
原创 [Caffe] - No.3 ssd-caffe(2):训练ssd-caffe模型:(以VOC数据集为例)
2.训练ssd-caffe模型:(以VOC数据集为例)使用caffe进行目标检测,我们的需要标注了标签的图片作为训练样本,训练模型。推荐使用开源的标注工具labelimg,来对我们的图片进行标注。标注之后,会产生.xml文件,用于标识图片中物体的具体信息。这里,我们以VOC格式的数据为示例:VOC的数据格式,主要有三个重要的文件夹:Annotations、ImageSets和JPEGI
2018-02-06 16:53:57
901
原创 [Caffe] - No.2 ssd-caffe(1):编译、安装、测试
在这篇文章里面总结一下ssd-caffe的安装使用,测试以及如何使用自己的测试样本,CUDA和OpenCV的安装在这里不再介绍,实验环境Ubuntu16.04 1 . 安装并测试ssd-caffe1.1 从git官网克隆ssd-caffe git clone https://github.com/weiliu89/caffe.git cd caffe git check...
2018-02-06 16:51:34
685
原创 解决Linux双系统安装卡在启动Logo
在安装Linux 双系统(一般是Nvidia显卡,1080p加核显的电脑)时,经常会出现卡在安装logo的问题,这种原因一般是由于linux发行商收录的nouveau 的开源显卡的问题。针对这种情况,解决方案如下:最重要的话放在前面:安装Linux之前先关闭Security Boot!!(不同主板引导界面中该选项的位置可能不太一致,但是大多数都是在boot 选项中的)在进入grub安装界面
2018-02-06 10:33:16
55649
3
原创 [Caffe] - No.1 nvcc fatal : Unsupported gpu architecture 'compute_20'
编译Caffe出现以下错误:nvcc fatal : Unsupported gpu architecture 'compute_20'解决方法: CUDA_ARCH := #-gencode arch=compute_20,code=sm_20 \ #-gencode arch=compute_20,code=sm_21 \ -ge
2018-02-03 22:18:38
5712
1
原创 [Python 实战] - No.10 Ubuntu16.04 配置Python OpenCV3.3.0
1.OpenCV 3.3.0 安装并测试1.1 安装依赖sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libjasper-dev libopenexr-dev libtbb-dev sudo apt-get install cmake1.2 安装OpenCV-3.3.
2018-01-16 21:57:15
494
原创 [Debug] - No.4 Python 3.5 安装Opencv
Anaconda python3.5的环境中安装python-opencv失败在cmd中使用pip安装python-opencv pip install python-opencv出现以下报错信息 Collecting python-opencv Could not find a version that satisfies the requirement python-open
2018-01-14 15:18:52
2305
原创 [Pytorch] - No.2 Pytorch 实现RNN语言模型
最近使用Pytorch,搭建了一个RNNLM,目的是为了利用词典中的每个词的One-Hot编码(高维的稀疏向量),来生成 Dense Vectors。这篇文章不讲解RNN原理以及为什么使用RNN语言模型,只是对pytorch中的代码使用进行讲解。 目前Pytorch的资料还比较少,我主要还是通过学习Pytorch文档+使用Pytorch官方论坛的形式来入门Pytorch 全部代码如下:impor
2018-01-04 20:33:29
3451
8
原创 [Pytorch] - No.1 Ubuntu 安装Anaconda 和 Pytorch
下载 Anaconda我选择的是Python3.6的Anaconda,[Anaconda官方下载地址(https://www.anaconda.com/download/)安装Anaconda切换到Anaconda安装包目录,使用bash运行该sh文件 bash Anaconda3-5.0.1-Linux-x86_64.sh 如下图所示一直按ENTER,直到提示输入yes,输入yes回车确认安
2018-01-04 18:00:49
3122
原创 [Spring Boot实战系列] - No.4 Spring boot 中如何在Utils类中使用@Autowired注入bean
Springboot中如果希望在Utils工具类中,使用到我们已经定义过的Dao层或者Service层Bean,可以如下编写Utils类:1. 使用@Component注解标记工具类StatisticsUtils:2. 使用@Autowired(@Autowired和@Resource的区别不再介绍)注入我们需要的bean:3. 在工具类中编写init()函数,并使用@PostCons
2017-11-30 19:49:09
4834
原创 [Spring Boot实战系列] - No.3 Spring boot 整合Mybatis
一、Mybatis是什么:mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。同时,mybatis提供了基于XML或者基于注解的动态SQL的方式,使得我们可以控制和优化SQL。 二、Springboot整合Mybatis两种方式:A. Spring ...
2017-11-27 21:50:59
395
原创 [Python 实战] - No.9 Python闭包和装饰器
一、闭包:闭包就是内层函数引用了外部函数的变量,然后返回内层函数的情况,叫做闭包。必报的特点就是我们返回的函数,引用了外部函数的局部变量,如果我们希望按照我们所想,来正确的使用这个必报的话,那就要确定我们引用的局部变量在函数返回以后是不能变得。一个最简单的闭包:def outer(arg): def inner(): return 'Using args:' +
2017-10-22 18:55:06
281
caffe_ilsvrc12.rar
2019-06-09
HDTune 中文破解
2017-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人