
机器学习之路
文章平均质量分 55
研究生期间,主要研究机器学习、深度学习,由于算法、数学、编程都相对比较薄弱,从基础入门笔记开始,pytorch框架的使用等基本内容的掌握,所以开此专栏,整理学习路线、经验等等。
小卜妞~
努力精通深度学习、精通机器学习、精通数据科学!
努力精通Java开发、熟练掌握计算机基础!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深度学习中的温度参数(temperature parameter)--疑问待解决
读论文的过程中,看到这个概念:temperature parameter。Ln=−logexp(sim(Zni,Znj)/τ)∑n′=1,n′≠nM(exp(sim(Zni,Zn′j)/τ))τ为温度参数\mathcal{L}_n=-log\frac{exp(sim(Z_{ni},Z_{nj})/\tau)}{\sum^M_{n'=1,n'\ne{n}}(exp(sim(Z_{ni},Z_{n'j})/\tau))} \quad \tau为温度参数Ln=−log∑n′=1,n′=nM(exp(原创 2021-11-19 10:59:33 · 5900 阅读 · 0 评论 -
pytorch学习笔记之GRU
"""gru模型定义:第一维表示input特征数,第二维表示隐层特征数,也是输出特征数,第三维表示gru单元个数要求input维度是3维,第一维表示样本数,第二维表示batch数,第三维表示input特征数;h维度,第一维同gru单元个数,第二维表示batch数,第三维表示隐层特征数"""import torch.nn as nnimport torchrnn = nn.GRUCell(10, 1)input = torch.randn(6, 3, 10)hx = torch.randn原创 2021-11-17 15:15:26 · 2455 阅读 · 0 评论 -
pytorch学习笔记之自己搭建一个网络结构
Pytorch定义深度神经网络其实就是一个层堆叠的过程,在__init__中定义层结构,每一层可能包含卷积、池化等操作。也可以复用Pytorch底层封装好的已经成熟的网络结构对layer进行初始化。该类中还有一个forward函数,在实例化模型的时候,底层会自动调用该函数。该函数中可以定义学习率,为初始化定义的layer传入数据等。一般自定义的op,如果您想在PyTorch中自定义OP的话,您需要继承这个类nn.Module,您需要在继承的时候复写forward和backward方法,可能还需要复写__原创 2021-11-17 10:35:54 · 980 阅读 · 0 评论 -
pytorch学习笔记之torch张量和nn模块用法和简单案例
torch.nn用法理解和简单案例用nn创建一个线性网络:import torchimport torch.nn as nnm = nn.Linear(20, 30) # 定义一个输入20维,输出30维的线性网络,y=Ax+b,即A是20*30的矩阵input = torch.randn(128, 20) # 输入数据的大小是128*20且服从正态分布output = m(input)print(output.size())# torch.Size([128, 30])用nn进原创 2021-11-17 10:29:28 · 1069 阅读 · 0 评论 -
pytorch学习笔记之dataload
pytorch的数据加载:torch.utils.data.DataLoader源码解析python中iterator和iterable的区别:前者表示迭代器,后者表示是否可迭代;迭代器不用知道一共多少元素,需要next往下查找,可以用for结构的就是iterator;而list/truple/map/dict都可迭代,有固定的大小,不是迭代器。只要是用PyTorch来训练模型基本都会用到该接口(除非用户重写…),该接口的目的:将自定义的Dataset根据batch size大小、是否shuffle、原创 2021-11-17 09:36:18 · 1799 阅读 · 0 评论 -
MXNet初识~~复现paper时遇到MXNet代码,将其转换成pytorch
NDArray:数组,类似于pytorch中的Tensor(封装的numpy的array,使之可以在GPU运行)Symbol:模型的层,类似于pytorch中的layersModule:模型整体框架MXNet中的矩阵用法基本和Numpy的array一致:创建矩阵:a = mx.nd.array([[1,2],[3,4]])查看维度:a.shape查看数值类型:a.dtype切片指定数据类型,,dtype=np.int8数组复制:copy(),否则,修改会改变原有的值ndarray转.原创 2021-11-17 09:35:16 · 383 阅读 · 0 评论 -
关于pytorch中scatter_add_函数的分析、理解与实现
关于scatter_add_函数的分析、理解与实现一、 pytorch中的定义和实现原理在torch._C._TensorBase.py中,定义了scatter_(self, dim, index, src, reduce=None) -> Tensor方法,作用是将src的值写入index指定的self相关位置中。用一个三维张量举例如下,将src在坐标(i,j,k)下的所有值,写入self的相应位置,而self的位置坐标除了dim维度用index[i,j,k]代替以外,都不变:self[in原创 2021-10-13 23:46:06 · 5267 阅读 · 3 评论 -
RuntimeError: CUDA out of memory.
RuntimeError: CUDA out of memory.Tried to allocate 156.00 MiB (GPU 0; 2.00 GiB total capacity; 499.29 MiB already allocated; 111.65 MiB free; 742.00 MiB reserved in total by PyTorch)看似超出GPU所占的内存不大,本地的GPU资源应该完全够用的,然而,在pytorch训练过程中,由于梯度下降等神经网络参数的反向传播和正向参数,原创 2021-06-04 10:19:17 · 927 阅读 · 0 评论 -
有关深度学习数据集训练前的shuffle
一、为什么要shuffle?shuffle有什么作用?防止过拟合随机优化(梯度下降),容易找到最优解,容易收敛机器学习,前提假设是独立同分布。不论是机器学习还是深度学习,我们总是基于数据独立同分布的假设条件,也就是说,数据的出现应该是随机的,而不是按照某种顺序排列好的。以上就是需要shuffle的根本原因。因此,我们需要在每个epoch的开始把数据shuffle一下参考掘金的一篇博文,如下图,我们用梯度下降来优化损失函数J,在给定参数W和学习步长时,固定顺序的数据集(假设相同类别的样本都紧密排列原创 2021-06-04 09:45:45 · 2754 阅读 · 5 评论 -
Unable to allocate 910MiB for an array with shape (24000, 12, 207, 2) with type float64
Unable to allocate 910MiB for an array with shape (24000, 12, 207, 2) with type float64910MiB = 24000 * 12 * 207 * 2 * 8 / 1024 / 1024本次bug发生在Graph WaveNet代码中的dataloader['train_loader'].shuffle()部分。分析:本机是16GB内存+10GB GPU内存一定是足够的,可能是内存分配碎片化严重,导致无法合理分配虚原创 2021-06-04 09:44:41 · 1566 阅读 · 0 评论 -
图神经网络详解及其在交通预测方面的应用
layout: myposttitle: 图神经网络及其在交通预测方面的应用categories: [Traffic prediction, Graph Neural Networks]图神经网络图神经网络可以粗略地分为基于谱的图神经网络和基于空间的图神经网络。其中前者从图的傅立叶变换而来,具有坚实的理论基础,在通过多番简化之后,其计算开销、局部性等已经能够满足大部分情形下的要求,但是它只能用来处理边上权重维数为111的无向图。而后者虽然缺乏理论基础,但是可以用来处理更加广泛的图结构数据,如有向图.转载 2021-04-08 21:52:13 · 3308 阅读 · 1 评论 -
百分位数
参考自:什么是百分位数?转载 2021-04-05 14:47:20 · 179 阅读 · 0 评论 -
爱因斯坦求和~enisum~以及各种矩阵乘法product公式~最后有手绘enisum理解
various productdot productelement-wise productinner productouter productKronecker product(克罗内克积)torch.enisumEinstein notation1 dot product线代中的矩阵乘法,A.dot(B),表示A的行乘以B的列,A的列数需要等于B的行数。A=(a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn),B=(b11b12⋯b1pb21b22⋯b2p⋮⋮⋱原创 2020-06-25 21:05:01 · 3093 阅读 · 4 评论 -
006.prcharm操作超过系统分配内存
在生成数据集的命令时,出现了以下问题:Unable to allocate 3.05 GiB for an array with shape (40000, 22, 2623,111) and data type float64。原因时数据集过大,pycharm分配到的作业内存溢出。那么window10下该怎么解决呢?通过查博客得知,一般的系统内存肯定是足够的,只不过默认分配的不足,就导致了memory异常,因此,我们按照需要读取的数据大小更改系统设置就好。依次操作:我的电脑,右击“属性”,打开“高级原创 2020-06-03 16:36:58 · 1085 阅读 · 0 评论 -
002.h5py
从GitHub上下载的代码,涉及到的数据都是以.h5为后缀的,那么这是什么类型的文件呢?可以找到,代码中都引入了这个包h5py,接下来一起看看这种文件怎么读取吧!An HDF5 file is a container for two kinds of objects: datasets, which are array-like collections of data, andgroups, which are folder-like containers that hold datasets and原创 2020-06-03 16:30:24 · 425 阅读 · 0 评论 -
001.argparse
学习WaveNet代码时,遇到大量的argparse的使用,那么这个包究竟是什么用处呢?argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数。import argparse# 生成一个parse对象,也叫参数解析器parser = argparse.ArgumentParser(description="描述该解析器是做什么的,该参数可以为空")# 添加信息,以下参数分别对应:变量名,别名,类型,默认值,描述信息parser.add_argument('--da原创 2020-06-03 16:29:53 · 142 阅读 · 0 评论 -
005.torch.dtype
每个torch.Tensor都有torch.dtype, torch.device,和torch.layout。torch.dtypetorch.dtype是表示torch.Tensor的数据类型的对象。PyTorch有八种不同的数据类型:Data typedtypeTensor types32-bit floating pointtorch.float32 or torch.floattorch.*.FloatTensor64-bit floating pointt转载 2020-06-03 16:28:15 · 3183 阅读 · 0 评论 -
008.np.expand_dims&高维度的vstack
np.expand_dims:字面意思,增加维度先认识一下维度的概念:以下给出了一个array,其shape=(2, 3, 2, 3),如何看array的维度呢?从最外面的中括号开始看,第0维是看第一个中括号,其中包含两个部分,所以大小是2;第1维就是看第二层括号,其中包含了三小项,所以大小是3;依次类推。该矩阵来源np.array( [ [ [ [1,2,3], [4,5,6] ],原创 2020-06-03 16:26:42 · 313 阅读 · 1 评论 -
ML~BatchNormalization
机器学习训练模型,其实就是想要学习到数据的分布。我们通过训练数据训练模型,用测试数据测试模型,然而训练数据和测试数据的分布一般不同,因此用符合训练数据分布训练得到的模型,对于测试数据来说精度就不如训练数据,因此为了提高模型的泛化能力,用训练数据对所有数据进行归一化。另一方面,在SGD学习的过程中,每一格batch之间的分布若不同,网络需要不断适应当前batch的数据,降低了训练速度。批标准化就是将隐层中的输出进行归一化的过程,可以提高训练速度。在BN中,用mini-batch求取的均值和方差,因此存在噪原创 2021-03-23 22:33:33 · 146 阅读 · 0 评论 -
数据分析原理与实验课程笔记--【R语言+置换检验】
生物信息学智能医疗假设检验(统计检验)不知道参数:参数估计知道一些参数,但有些怀疑:假设检验统计假设:用部分样本的信息来对总体的统计信息提出假设。假设检验:就是对以上假设进行决策。小概率事件:认为概率很小的事件在一次试验中不大可能出现,反之,若小概率事件在一次试验中发生,就被认为是不合理的。基本思想:对总体的参数或分布函数做出了假设,然后构造一个在假设成立的条件下的小概率事件。...原创 2020-07-24 21:48:33 · 777 阅读 · 0 评论 -
pytorch、opencv、dlib的安装的多种方式~值得尝试
安装Pytorch安装pyTorch需要考虑本机是否有GPU,如果有的话,需要安装CUDA,然后在官网选择相应的方式在命令行进行下载。我的是64位Windows系统,没有GPU,已经安装了anaconda(anaconda中安装太慢,或出错),所以可以选择Conda和pip两种方式,复制生成的command,在命令行运行即可。之前尝试的很多方法都没装上,也不知道是怎么回事。conda,whl文件都失败了。cuda的安装OpenCV的安装命令行直接输入:pip install opencv-py原创 2020-05-20 08:38:13 · 1837 阅读 · 1 评论 -
Anaconda第三方库下载慢的解决
步骤一:通过 conda config 命令生成配置文件,这里,我们使用清华的镜像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/,首先,打开CMD,执行命令:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/步骤二:执行命令:conda config --set show_channel_urls yes步骤三:转载 2020-05-18 11:49:40 · 1216 阅读 · 0 评论 -
Coursera视频无法播放问题【更改了系统中的host文件,在此记录】
https://blog.youkuaiyun.com/qq_39521554/article/details/79039548没有权限修改hosts文件转载 2019-07-16 21:37:10 · 1430 阅读 · 0 评论 -
机器学习【西瓜书+版本空间】
博主链接下面是自己结合百度的资料来理解的一些比较通俗的说法:假设空间:属性所有可能取值组成的可能的样本版本空间:与已知数据集一致的所有假设的子集集合。(绿色加号代表正类样本,红色小圈代表负类样本)GB 是最大泛化正假设边界(maximally General positive hypothesis Boundary),;SB 是最大精确正假设边界(maximally S...转载 2019-07-26 15:44:52 · 292 阅读 · 0 评论 -
深度学习的框架
https://www.jianshu.com/p/a507c3287e75转载 2020-04-02 12:32:13 · 143 阅读 · 0 评论 -
ML、RL、DM、DL初步理解
2020年2月15日16:24:51今日任务:弄明白以下四个内容的特点、方向、内容以及关系:机器学习(ML)深度学习(DL)强化学习(RL)数据挖掘(DM)ML维基百科解释的很详细!机器学习算法基于样本数据(称为“ 训练数据 ”)建立数学模型,以便进行预测或决策,而无需明确地编程以执行任务。机器学习是人工智能的一个部分,很广泛的用于应用中,如邮件检测和计算机视觉等。与统计学...原创 2020-02-15 18:03:32 · 9884 阅读 · 0 评论 -
统计学基础
imooc统计学是一门收集、整理和分析统计数据的方法科学其目的是探索数据内在的数量规律性,以达到对客观事物的科学认识统计学研究随机现象,以推断为特征,”由部分推及全体”的思想贯穿于统计学的始终描述统计学(Description Statistics)◆研究如何取得反映客观现象的数据【获取数据】◆并通过图表形式对所收集的数据进行加工处理和显示【处理数据】◆进而通过综合概括与分析得...原创 2020-02-08 10:55:52 · 722 阅读 · 0 评论 -
相似度度量方式及原理
引子对于一个聚类问题,假设数据集中包含n个无标记样本D=X1,X2,...,XnD={X_1,X_2,...,X_n}D=X1,X2,...,Xn,其中任意样本Xi=(xi1,xi2,...,xid)X_i=(x_{i1},x_{i2},...,x_{id})Xi=(xi1,xi2,...,xid)是一个d维向量。将给定的样本集划分成若干个互不相交的子集,使得子集内样本的相似性尽...原创 2019-12-13 19:41:45 · 2853 阅读 · 1 评论 -
先进人工智能课程复习笔记Ⅵ--人工神经网络
人工神经网络神经元,输入兴奋超过某个阈值就会处于兴奋状态多个inputs,一个output人工神经元模型:求和操作:s=∑i=1∞wixi−θs=\sum_{i=1}^{\infty}w_ix_i-\thetas=∑i=1∞wixi−θ激励函数:y=f(s)y=f(s)y=f(s)输出函数往往是0-1二值函数或S形函数:f(x)={1,x>=x00,x<x0f(x)...原创 2019-12-10 11:27:56 · 357 阅读 · 0 评论 -
先进人工智能课程复习笔记Ⅴ--问题求解与搜索策略
问题求解与搜索策略状态空间的搜索策略与或树的搜索策略搜索的完备性和策略人工智能的核心问题是【问题求解】,问题求解关键在于【问题表示】【解的搜索】状态空间表示法:算符和状态(S,F,G)求解过程转化为从初始节点到目标节点的路径问题:必须要记录走过的点。CLOSED必须要记录还可以走的点。OPEN每一个子结点结构中必须要有指向父节点的指针表中包含的项包括:状态节...原创 2019-12-10 09:52:17 · 4288 阅读 · 0 评论 -
先进人工智能课程复习笔记Ⅳ--不确定性推理
不确定性推理重点:可信度方法、模糊推理基本概念概率方法主观Bayes方法可信度方法模糊理论简单模糊推理【不确定性推理】:不确定性的初始证据,用不确定性的知识,推出一定程度上不确定的结论。【如何表示】:知识不确定性:由领域专家给出的一个数值表示,称为静态强度证据不确定性:也是一个数值,称为动态强度【不确定性的匹配】:设计不确定性匹配算法...原创 2019-12-07 20:03:05 · 928 阅读 · 0 评论 -
先进人工智能课程复习笔记Ⅲ--经典逻辑推理
经典逻辑推理【确定性推理】重点:归结演绎推理本章的主要内容:基本概念自然演绎推理归结演绎推理与或形演绎推理如何进行一次推理?观察结果(事实)—>推理依据(规则)—>推理结果(结论)【柯南的推理过程,人类本身有语义理解能力】计算机如何进行推理?将事实和规则借用一些符号,将推理过程形式化。基本概念符号与形式语言数理逻辑:命题逻辑:谓词逻辑:有量词和变元,函数...原创 2019-12-07 16:28:08 · 1000 阅读 · 0 评论 -
先进人工智能课程复习笔记Ⅰ--导论
导论通用人工智能的定义:包含人类水平的任务,涉及机器的持续学习。必然性的演绎推理和不确定性的归纳、类比推理以及模糊推理are vital.发展脉络【萌芽】:亚里斯多德主要贡献为:逻辑及形而上学两方面的思想;主谓命题及逻辑推理方法(三段论证)命题,真或假。他认为,主谓命题包含量词(任意/存在)-主词S-系词(T/F)-谓词P亚里士多德:演绎法,三段论培根:归纳法图灵:用机器精确...原创 2019-12-07 09:38:32 · 322 阅读 · 2 评论 -
先进人工智能课程复习笔记Ⅱ---知识表示方法
知识表示方法【前提知识】知识:相关信息关联在一起形成的信息结构。知识表示:计算机可接受的描述知识的数据结构。知识的范围:具体到一般;由说明到指定;确定到不确定知识的划分:常识性知识、领域性知识;事实性知识、过程性知识、控制性知识;确定、不确定知识;逻辑性知识、形象性知识;显、隐性知识人工智能---->a process to solve problem---->搜索过程1...原创 2019-12-07 09:37:27 · 755 阅读 · 0 评论 -
遗传算法【1.2】
还是上一道题目,用遗传算法的思想求解二元方程的最优解。目标函数和变量范围改变。"""题目: max f(x1,x2) = 100*(x2-x1^2)^2+(1-x1)^2 s.t. x1,x2∈[-2.048, 2.048] E = 10^-4"""import mathimport randomimport heapqimpor...原创 2019-10-13 17:46:41 · 1349 阅读 · 0 评论 -
遗传算法【1】
第: 0 代: 35.8753第: 1 代: 38.100474 {'110101110101001110011000110001100', '100110110010000110100010001010011', '100000001111101001111100010000110', '111110011000101110000000100010000', '100111111011100...原创 2019-10-13 17:12:44 · 868 阅读 · 0 评论 -
【TSP】【遗传算法】【gr48】之数据读取
gr48是TSP问题的典型测试数据集,该数据集是一个下三角矩阵,每一个元素代表对应坐标城市i->j的距离,那么现在要做的就是读取文件read(),按照空格分开形成一个一维向量,然后按照数量关系存到一个二维矩阵中,处理方法如下:一开始拿到数据集,完全不明白乱七八糟的一堆是什么,后来才知道是一个下三角矩阵,再后来才发现可以变成这样:突然觉得发现了新天地。我参考的代码用的是pandas,...原创 2019-09-27 18:44:21 · 1402 阅读 · 1 评论