自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

budding0828

Dance, like you never fall down.

  • 博客(121)
  • 收藏
  • 关注

转载 C++ 使用VS进行内存泄漏检查

这是在win10 vs2012的环境下进行的实验。主要参考的博客和回答有:疯狂-的-蜗牛:https://blog.csdn.net/mfcing/article/details/42673393vczh的回答:https://www.zhihu.com/question/63946754首先在代码顶部加上如下语句:#ifdef VCZH_CHECK_MEMORY_LEAKS#define _CRTDBG_MAP_ALLOC#include <stdlib.h>#include

2020-08-20 19:43:28 694

转载 pytorch tensor clone, detach 之后梯度的变化

cloneclone()函数可以返回一个完全相同的tensor,新的tensor开辟新的内存,但是仍然留在计算图中。detachdetach()函数可以返回一个完全相同的tensor,新的tensor开辟与旧的tensor共享内存,新的tensor会脱离计算图,不会牵扯梯度计算。非常推荐大家阅读这篇博客:https://blog.csdn.net/winycg/article/details/100813519...

2020-08-19 23:23:49 1153

原创 pytorch KL散度计算出现负值的情况

最近使用了pytorch的KL散度计算模块,发现loss是负值,例如下面的代码。import torchKL_criterion = torch.nn.KLDivLoss(size_average=False)a = torch.tensor([0.1, 0.2, 0.3, 0.4])b = torch.tensor([0.1, 0.2, 0.3, 0.4])loss = KL_criterion(a, b)print(loss)其结果为:-1.5799后来通过网上的解释(http

2020-08-19 22:12:52 12204 2

原创 《数学之美(第一版)》笔记 —— 第5章

第5章 隐含马尔科夫模型通信模型通信的六要素:发送者,信道,接受者,信息,上下文,编码。问题:如何从接收端的观测信号o1,o2,o3...o_1,o_2,o_3...o1​,o2​,o3​...来推测信号源发送的信息s1,s2,s3...s_1,s_2,s_3...s1​,s2​,s3​...?解:找最可能产生观测信号的源信息。由于o1,o2,o3...o_1,o_2,o_3...o1​,o2​,o3​...一旦产生就不会改变,所以此时P(o1,o2,o3,...)P(o_1,o_2,o

2020-08-13 10:18:05 250

原创 《数学之美(第一版)》笔记 —— 第11章

第11章 如何确定网页和查询的相关性几个概念:关键词的频率/单文本词频(Term Frequency,TF):关键词次数除以网页的总字数。停止词(Stop Word):度量时不需要考虑的词。例如中文的“的,和,中”等。逆文本频率指数(Inverse Document Frequency,IDF):IDF=log(D/Dw)IDF=log(D/D_{w})IDF=log(D/Dw​) ,其中DDD是全部网页数,而DwD_{w}Dw​是关键词出现过的网页数。作为每个搜索关键词的权重。(例如“原子能

2020-08-11 17:23:37 189

原创 《数学之美(第一版)》笔记 —— 第10章

第10章 PageRank——Google的民主表决式网页排名技术搜索结果的排名取决于两组信息:关于网页的质量信息,和这个查询与每个网页的相关性信息。PageRank核心思想:在互联网上,如果一个网页被很多其他网页所链接,说明它受到普遍的承认和信赖,那么它的排名就高。(解决网页质量的问题)PageRank的计算方式:计算搜索结果的网页排名过程会用到网页本身的排名。使用一个二维矩阵相乘来迭代解决:首先假定所有网页的排名是相同的,并且根据这个初值,算出各个网页的第一次迭代排名,然后再根据第一次迭代

2020-08-11 17:22:28 270

原创 《数学之美(第一版)》笔记 —— 第9章

第9章 图论和网络爬虫在网络爬虫中,使用一个“哈希表”的列表来记录网页是否下载过的信息。如何构建一个网络爬虫:1)下载网站的顺序:BFS为主(横向,爬取最重要的网页,如首页)DFS为次(一次下完整个网站,避免多次握手)网络爬虫对网页遍历的次序不是简单的BFS或者DFS,而是有一个相对复杂的下载优先排序的方法,管理这个优先级排序的子系统一般称为调度系统(Scheduler)2)页面分析和URL提取解析HTML3)记录哪些网站下载过:URL表提高哈希表服务器的通信:

2020-08-11 17:21:06 184

原创 《数学之美(第一版)》笔记 —— 第8章

第8章 简单之美——布尔代数和搜索引擎的索引一个搜索引擎大致需要做3件事:1)自动下载尽可能多的网页;2)建立快速有效的索引;3)根据相关性对网页进行公平准确的排序。数据库SQL支持各种复杂的逻辑组合,背后原理是基本布尔运算。而搜索引擎会把用户的查询语句转换成布尔运算的算式。搜索引擎的索引是一张大表:表的每一行对应一个关键词,而每个关键词后面跟着一组数字,是包含该关键词的文献的序号。分布式:根据网页序号将索引分成很多份,分别存储在不同的服务器中。每当接受一个查询时,这个查询就被分发到许许多多服务

2020-08-11 17:19:32 180

原创 《数学之美(第一版)》笔记 —— 第6章

第6章 信息的度量和作用信息熵(Entropy)背景:信息量等于不确定性的多少可以用bit这个概念来衡量信息量(所以加上了log函数)信息熵公式:其中P(x)P(x)P(x)是x发生的可能性。变量的不确定性越大,熵也就越大。信息熵的取值范围是:[0,log2(n)][0, log_2(n)][0,log2​(n)] ,其中n代表分类的数目。其推导过程可以参考:https://blog.csdn.net/sinat_26811377/article/details/10199235

2020-08-11 17:14:16 278

原创 《数学之美(第一版)》笔记 —— 第4章

第4章 谈谈中文分词中文分词方法的演变:查字典:遇到复合词就找最长的词匹配,遇到不认识的字串就分割成单字词。缺点:无法解决二义性问题(如,发展中国家,发展-中-国家,发展-中国-家)统计语言模型不需要穷举所有的分词方式,可以采用动态规划或者维特比算法来快速找到最佳分词。关于分词的颗粒颗粒度大,翻译效果最好。(例如“联想公司”,作为一个整体)颗粒度小,网页搜索好。(例如“清华大学”和“清华”)...

2020-08-11 11:20:04 220

原创 《数学之美(第一版)》笔记 ——第3章

第3章:统计语言模型自 然 语 言 从 它 产 生 开 始 , 逐 渐 演 变 成 一 种上 下 文 相 关 的 信 息 表 达 和 传 递 的 方 式 , 因 此 让 计 算 机 处 理 自 然 语 言 , 一个 基 本 的 问 题 就 是 为 自 然 语 言 这 种 上 下 文 相 关 的 特 性 建 立 数 学 模 型 。 这个 数 学 模 型 就 是 在 自 然 语 言 处 理 中 常 说 的 **统 计 语 言 模 型 ( Statistical Language Model ) **, 它

2020-08-11 11:18:54 215

原创 《数学之美(第一版)》笔记 —— 第2章

第2章:自然语言处理——从规则到统计虽然传递信息是动物也能做到的,但是利用语言来传递信息是人类的特质。基于规则的自然语言处理:缺点:需要很多的文法规则。这种基于规则的做法和程序编译很像:自然语言是上下文有关文法;计算机程序语言是上下文无关文法。基于统计的方法:其核心是通信系统+隐含马尔科夫模型...

2020-08-11 11:10:05 199

原创 《数学之美(第一版)》笔记 —— 第1章

第1章:文字和语言vs数字和信息文 字 按 照 意 思 来 聚 类 , 最 终 会 带 来 一 些 歧 义 性 , 也 就 是 说 有 时 弄 不 清 一个 多 义 字 在 特 定 环 境 下 它 到 底 表 示 其 中 的 哪 个 含 义 。(这也是为什么上下文建立的概率模型再好,也有失灵的时候)文字只是信息的载体,而非信息本身。信息的冗余是信息安全的保障。(例如罗塞塔石碑)阿拉伯数字的出现,标志着数字和文字的分离。...

2020-08-11 11:07:25 331

原创 《数学之美(第一版)》笔记整理 —— 目录

序因为想对互联网的新兴技术有一些更好的了解,不断拓展自己的知识面,所以想到了吴军老师的《数学之美》,个人非常推荐大家阅读,可以对各种技术有一个入门的了解。吴军老师的讲法也很生动,对部分章节的内容有兴趣的,也可以深入去了解。为了更好地理解书中的内容,我根据自己的思维方式做了一些整理。并且对一些相对难懂的片段,我做了进一步的扩展和深究。将自己的笔记分享出来,希望能够和大家一起学习和探讨。电子书pdf我已经上传到github仓库中,方便大家下载。目录...

2020-08-11 11:03:23 605

原创 python3 list 自定义排序

python3 list 自定义排序python2 自定义排序在python2中,我们可以使用cmp进行自定义排序,当时在python3中却取消了这个参数。def cmp(x1, x2): ...a.sort(cmp)python3 自定义排序参考 Masker的做法,可以使用以下方式进行自定义排序。def cmp(x1, x2): if x1['score'] != x2[...

2020-03-15 16:05:04 1693

原创 使用清华镜像源下载pytorch

使用清华镜像源下载pytorch由于墙的缘故,我们在国内下载pytorch的速度是非常慢的,甚至还容易出现中断。这时我们可以使用国内的清华源,自己下载所需要的包,然后本地安装。清华镜像首先去清华源pytorch的网站找我们所需要的包:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/下载所需要的包例如我想下载 py...

2020-02-10 23:32:36 8620 2

原创 pytorch register_hook 学习

pytorch register_hook 学习register_hook 简介:pytorch 的 hook 函数分为 torch.Tensor 和 torch.nn.Module 两类, 分别对应:torch.Tensor.register_hooktorch.nn.Module.register_backward_hook参考:https://blog.csdn.net/qq_...

2020-01-28 16:29:16 1135

原创 valgrind 的使用

valgrind 的使用valgrind 介绍Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。常见的用法是用来测试程序是否有内存泄漏的情况。详细的介绍可以参考:https://blog.csdn.net/destina/article/details/6198443接下来我将介绍如何使用 valgrind,环境是 Linux安装 valgrind首先是安装:...

2020-01-22 22:14:05 215

原创 pytorch 打印模型的参数值

pytorch 打印模型的参数值对于简单的网络例如全连接层Linear可以使用以下方法打印linear层:fc = nn.Linear(3, 5)params = list(fc.named_parameters())print(params.__len__())print(params[0])print(params[1])输出如下:由于Linear默认是偏置bias的,...

2019-10-20 10:27:08 12537 3

原创 Ubuntu 反复登陆解决

问题描述近期在Ubuntu上遇到了一个问题,就是在登陆界面输入密码并回车之后,屏幕闪一下(有时会有多行命令行)然后又重新回到输入密码的界面。其他解决方案这种情况出现的原因有很多种,包括权限问题之类的。在下面贴出一些网友的解答。修改profile文件:https://blog.csdn.net/mm_bit/article/details/48056157修改.Xauthority...

2019-07-26 16:34:51 1833

原创 python 读取大文件

近期在处理数据时,发现对于几百兆甚至几G的数据,我们是没有办法用notepad++或者sublime等文本编译器打开的,会直接崩溃掉。在程序处理时,也没办法使用普通的文件读法,一下全部加载到内存中。后来查阅网上的几种方法,在这里做个整理。对于有多行的数据 —— 按行读取with语句打开和关闭文件,包括抛出一个内部块异常。for line in f文件对象f视为一个迭代器,会自动的采用缓冲IO和...

2019-05-26 11:46:01 804

原创 pytorch 学习笔记6 —— 一步步解析nn模块

一步步解析nn模块来源:https://pytorch.org/tutorials/beginner/nn_tutorial.html#refactor-using-optim数据集使用的数据集是MNIST,有多种方式可以获取,包括教程中的requests方式。这里不在详细说明,但是说明将数据转化为图片的方式。(MNIST的数据是手写数字)使用matplotlib显示图片pyplot.i...

2019-05-23 21:31:42 950

原创 pytorch 学习笔记5 —— 实例学习

首先是一个两层网络,使用numpy版本和pytorch版本其实如果仔细对比,差别不大。代码量也相似。因为这里没有使用pytorch的自动梯度计算。numpy版本# -*- coding: utf-8 -*-import numpy as np# N is batch size; D_in is input dimension;# H is hidden dimension; D_o...

2019-05-23 21:30:56 315

原创 pytorch 学习笔记4 —— GPU加速

在GPU上训练来源:https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#training-an-image-classifier定义设备如果我们的机器支持CUDA,那么我们使用第一个cuda设备为cuda0device = torch.device("cuda:0" if torch.cuda.is_av...

2019-05-23 21:29:52 560

原创 pytorch 学习笔记3 —— Neural Networks

来源:https://pytorch.org/tutorials/beginner/blitz/neural_networks_tutorial.html#backprop来源里面有比较详细的例子。这里挑几点比较重点的作为recap定义一个模型import torchimport torch.nn as nnimport torch.nn.functional as Fclas...

2019-05-23 21:28:59 280

原创 pytorch 学习笔记2 —— autograd package

autograd package来源:https://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html如果属性:.requires_grad 的值是true,那么意味着所有的计算都会自动计算backword.当结束计算的时候,可以调用.backward(),所有的梯度都会自动被计算好。tensor的梯度可以查看属性.gr...

2019-05-23 21:28:36 246

原创 pytorch 学习笔记1 —— 变量操作

为什么学习pytorch替代numpy,使得可以更好使用GPUs为深度学习提供最大的灵活性和速度学习前提确保安装了torch的包,以下句子可以顺利执行import torch变量操作来源:https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor...

2019-05-23 21:24:54 579

原创 KNN, LDA, SVM 实战 —— 运用在Farm-ads(python)

概述使用KNN,LDA,SVM求解UCI中的Farm-ads数据集。其中KNN为纯手写,LDA包括手写和使用sklearn的模块,SVM也包括手写和使用sklearn模块。github代码实验环境anaconda + jupyter notebook + python3.7数据数据集来源实验数据来源于:UCI机器学习数据库(http://archive.ics.uci.edu/ml/...

2019-05-19 15:42:40 1337

原创 variables are collinear 的原因

近期使用sklearn框架中的LDA模块进行二分类预测时,出现以下警告:UserWarning: Variables are collinear. warnings.warn("Variables are collinear.")由于我使用的数据集是一个非常稀疏的矩阵,而LDA在求解过程中需要求数据的逆矩阵,所以会出现以上警告。详细的解释是:LDA涉及计算矩阵求逆,如果行列式接近于0,...

2019-05-19 11:44:43 4785 4

原创 数据挖掘与数据仓库——聚类

聚类分析基本定义什么是聚类分析把一组对象分成若干个聚类(Cluster), 使得同一个聚类中的对象之间具有高的相似性(High intra-cluster similarity), 不同聚类中的对象之间具有低的相似性(Low inter-cluster similarity).怎样度量聚类方法聚类内对象的高度同质性(Homogeneity)聚类间对象的高度分离性 (Separation...

2019-05-18 10:03:49 644

原创 数据挖掘与数据仓库——分类

分类算法什么是分类一些常见的概念:训练集(Training data):用于训练模型(的参数,如神经网络的各层权重和偏置,线性回归分析的系数);验证集(Validation data):用于调整超参数(Hyper-Parameters,如神经网络的宽度和深度、学习率等);测试集(Test data):用于评价模型本身的有效性(准确率等)训练误差(Training error):分类器...

2019-05-18 10:02:27 1162

原创 数据挖掘与数据仓库——关联规则挖掘

关联规则挖掘基本概念Apriori算法Apriori裁剪原理: 对于任意项集,如果它不是频繁集,则它的任何超集不用产生/测试!算法流程:关于连接操作:一个例子:Apriori算法存在问题:多次扫描数据库产生大量的候选集合FP-Tree算法可以参考:https://blog.csdn.net/kisslotus/article/details/80328045...

2019-05-18 09:52:30 807

原创 数据挖掘与数据仓库——数据仓库、 OLAP及数据立方体计算

数据仓库、 OLAP及数据立方体计算什么是数据仓库有多种但并不严格的定义与操作数据库相隔离并单独维护的一个用来支持决策过程的数据库。一个用来对整理过的历史数据进行分析以便支持信息处理的固定平台。“数据仓库是面向主题的、集成的、时变的、非易失的数据集合,它用来支持管理部门的决策过程”—W. H. Inmon数据仓库的特征面向主题的:围绕主题组织, 如消费者(customer)、...

2019-05-18 09:49:47 1219

原创 数据挖掘与数据仓库——数据预处理

数据预处理为什么要进行预处理现实世界的数据很“脏”不完整的: 缺少属性值, 感兴趣的属性缺少属性值, 或仅包含聚集数据如, occupation=“ ”来源于:收集数据时,在不同的阶段具有不同的考虑;人/硬件/软件的问题等。含噪声的: 包含错误或存在孤立点如, Salary=“-10”来源于:收集阶段;数据传输阶段等。不一致的: 在名称或代码之间存在着差异如, Ag...

2019-05-18 09:47:31 894

原创 数据挖掘与数据仓库——数据挖掘概述

专题介绍该专题是数据挖掘与数据仓库专题,博主在复习过程中针对老师的PPT进行的整理,使得逻辑更加方便学习。对于初步入门数据挖掘与数据仓库是可以作为参考的,如果想深入了解,则需要看更全面的教材。不足之处请大家多多指教。数据挖掘概述什么是数据挖掘DB派:从海量数据中提取有兴趣的模式或知识;数据库中的知识发现(Knowledge Discovery in Databases, KDD)为...

2019-05-18 09:43:07 740

原创 windows下:Python出现"pip is configured with locations that require TLS/SSL, however the ssl....."错误解决办法

window10 解决方案网上大部分是针对Ubuntu等类Unix系统的。这里我提供windows10 anaconda下的解决方案。在环境变量中,添加C:\Users\56989\Anaconda3\ScriptsC:\Users\56989\Anaconda3\Library\binC:\Users\56989\Anaconda3\注意根据本机路径进行修改。...

2019-05-03 08:52:21 4689 8

原创 读取一行,以空格分隔数字

之前在OJ上遇到一道题,给你一行数字,按空格隔开,但是不告诉你数字的数目,自己处理。一开始很懵,后来借助stringstream类成功解决,分享给大家。(具体说明都写在注释里面了)#include <bits/stdc++.h>using namespace std;int main(){ string inputstr; stringstream inputss;...

2019-04-19 17:33:35 5816

原创 C++ STL map用法简要介绍

关于STL map的使用知识补充首先,补充一下pair类型的访问,使用first,second。pair<int, double> p1; //使用默认构造函数p1.first = 1;p1.second = 2.5;cout << p1.first << ' ' << p1.second << endl;map声明m...

2019-04-19 16:13:32 225

原创 MNIST手写识别系列——kNN算法(多进程和单进程)

核心思想KNN算法的核心思想其实很简单,就是计算两张图片之间的距离。当我们有一个已经打上标签的数据集,然后我们输入一张图片,此时图片会和数据集中所有图片进行求“距离”运算,选出其中最近的k张图,然后根据这k张图中的标签,选择标签出现次数最多的作为我们的输出。距离公式有以下两种:曼哈顿距离:高斯距离:对于超参K的选择:将测试数据分的等分成多个折,每个折使用不同的K值,最后看哪个折...

2019-04-18 18:57:44 429

原创 python 调用 C/C++ 详解

关于gcc以及python的版本配置建议大家去看我之前的一篇文章,里面比较详细地点明了关于32位和64的一些坑。接下来将简单介绍python如何调用C和C++。包括调用整型,数组等情况。python 调用CC函数返回整型intc代码 test.c#include <stdio.h>#include <stdlib.h>int func(int a, int b...

2019-04-17 13:50:43 885

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除