自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 位运算:Brian Kernighan算法

Brian Kernighan算法可以用于清除二进制数中最右侧的1。Brian Kernighan算法的做法是先将当前数减一,然后在与当前数进行按位与运算。x=x&(x-1)举个例子,20的二进制表示为10100,其最右侧的1在第三位上。20-1=19,19的二进制表示为10011,10100&10011=10000。可以看到,Brian Kernighan算法可以二进制数将最右侧的1清除。...

2020-08-23 13:49:32 1766

原创 python赋值操作、浅拷贝、深拷贝以及函数传递参数详细解析

学过C语言的同学都能分清楚变量和指针的区别,而python的变量全部是指针的形式,所以在变量的赋值操作时(如a=b),只是将索引复制了一份。如果想把指针索引的内容进行复制, 则需要用到浅拷贝和深拷贝。下面来介绍一下python的赋值操作、浅拷贝和深拷贝的区别。赋值操作如果我们将变量b赋值为变量a,实质上是将变量b也指向了变量a所指向的对象。如下图所示:所以我们改变该对象的内容时,不管再a还是b去所引,内容都已经改变。import copyclass aclass(object): def

2020-08-08 17:48:23 1185

原创 卷积LSTM网络应用于时空序列预测

时空序列预测问题是输入的是按照某一时刻之前若干个时刻表示空间信息的二维矩阵,预测某一时刻后面若干个时刻的空间状态。可以形式化为:卷积LSTM(Convolutional LSTM)是把卷积神经网络的思想和循环神经网络的思想融合到一个端到端的深度神经网络之中,使得网络既有提取时间信息的能力,又有提取空间信息的能力。ConvLSTM这种网络结构在视频帧预测,未来天气预测等时空序列预测问题中有很好的...

2020-03-22 17:28:34 5913 4

原创 哈夫曼编码(Huffman Coding)原理、运行步骤、python实现

哈夫曼编码是贪心算法的一个典型应用。哈夫曼编码利用每条数据出现的频率(概率),从信息论的角度出发,将这些数据重新编码。哈夫曼编码的编码结果是给出现频率较高的数据一个较短的编码,给出现频率较低的数据一个较长的编码。让我们举个例子说明一下哈夫曼编码的步骤:现在有数据[a,a,a,a,a,b,b,b,b,c,c,c,d,d,e]。可以看出字符a出现了5次,字符2出现了4次,字符c出现了3次,字符d出现...

2020-03-14 00:25:25 4247

原创 十大排序算法一句话概括

一句话概括十大排序算法的思想冒泡排序:两个相邻元素比较,如果顺序相反则交换位置。插入排序:假设前面的数字都已经排好序,再向有序数组中插入一个元素,使得插入后的数组有序。选择排序:选择未排序数组中最大或者最小的数组放在前面。希尔排序:按照增量不同,进行多次插入排序。归并排序:将两个有序的数组合并成一个有序的数组,运用分治算法的思想解决排序问题。堆排序:将数组看成一个堆,运用堆的性质完成排...

2020-03-07 15:24:37 469 1

原创 快速理解正则表达式

正则表达式是用于匹配某个具有一定规律的字符串的方法。正则表达式本身是一个字符串形式,它描述了一个字符串集合。正则表达式的一般形式正则表达式的一般形式为: ‘[]{}’。简单来说就是匹配什么样的字符串几次,即[什么字符]{几次}。[]里的内容表示匹配什么样的字符串,{}里的内容表明匹配几次前面[]里的字符串。比如[a-z]就是匹配小写字母,[^a-z]就是匹配除小写字母以外的其他字符;{0,}...

2020-02-01 23:36:29 436

原创 16KDD Convolutional Neural Networks for Steady Flow Approximation

本文简介以前空气动力学的计算方法是传统CFD算法,但是它需要的计算开销大。本文提出了用CNN的方法,预测2D和3D的非均匀稳定层流(non-uniform steady laminar flow),在误差允许范围内比CFD快很多(在GPU上快4个数量级)。这使得可以在空气动力学产品的设计初期快速迭代。训练数据可以源于CFD结果和实测结果。本文提出的模型模型步骤:用SDF(Signed Di...

2019-12-03 23:20:06 902 1

原创 梯度提升决策树(GBDT)算法简介

梯度提升决策树(GBDT:GradientBoostingDecisionTree)算法是集成学习中boosting的一种。总体思路是利用每个弱学习器计算当前输出与真实值的残差,然后讲每个学习器输出的残差进行累加,以求接近真实值。训练过程可以用下面的公式来表示:fm(x)=fm−1(x)+Tm(x,Δm){f\mathop{ {} } \nolimits_{ {m} } { \left( {x...

2019-11-18 22:08:47 1070

原创 决策树(分类与回归)

决策树算法的大概流程首先我们要知道,决策树是根据训练集构造一个树结构,每个分叉相当于一次判断,每个叶子节点就是模型的输出。如下图所示:步骤1:就对于每一个节点,选取最优分叉属性。选择最优属性的方法有很多种,最常见的是信息增益法。步骤2:把当前节点的训练样本集合,按照最优分叉的属性值分成几个子集,分别作为下一个节点。举个例子:如果步骤1告诉我们,当前节点最优属性是“纹理”,且纹理有...

2019-11-15 16:28:29 868

原创 极大似然估计、贝叶斯分类器

贝叶斯分类器解决的是分类问题。假设模型的输入特征为x,输出结果为y。首先我们需要弄明白几个概念:先验概率:p(y)后验概率:p(y|x)似然函数:p(x|y)证据因子:p(x)极大似然估计极大似然估计可以看做是一个训练贝叶斯分类器的方法。首先我们需要了解贝叶斯公式:p(yi∣x)=p(x∣yi)p(yi)∑mj=1p(x∣yj)p(yj){p{ \left( {y\math...

2019-11-02 11:33:23 657

原创 Vijos 1067Warcraft III 守望者的烦恼(动态规划+矩阵快速幂)

背景守望者warden,长期在暗夜精灵的的首都艾萨琳内担任视察监狱的任务,监狱是成长条行的,守望者warden拥有一个技能名叫“闪烁”,这个技能可以把她传送到后面的监狱内查看,她比较懒,一般不查看完所有的监狱,只是从入口进入,然后再从出口出来就算完成任务了。描述头脑并不发达的warden最近在思考一个问题,她的闪烁技能是可以升级的,k级的闪烁技能最多可以向前移动k个监狱,一共有n个监狱要视察...

2019-10-30 23:48:18 613

原创 快速幂算法原理和求解过程

数的快速幂快速幂算法可以在O(logn)时间内完成对一个数求k次幂的操作。用了分治的思想,比如想要求a的20次方,则只需求一次a的10次方,然后在相乘即可。递归方法求解此方法较为直观。int pow1(int a,int k){ if(k==0) return 1; else{ if(k%2) return a*pow(a,k-1); else{ int tmp=pow(...

2019-10-29 17:37:33 488

原创 神经网络中的激活函数总结

ReLU及其变种ReLU激活函数在卷积神经网络中表现良好,运算速度快。RELUf(x)=max(0,x){f{ \left( {x} \right) } =max{ \left( {0,x} \right) } } f(x)=max(0,x)RELU6f(x)=min(max(0,x),6){f{ \left( {x} \right) } =min{ \left( {max{...

2019-10-28 21:43:00 444

原创 19KDD AccuAir Winning Solution to Air Quality Prediction for KDD Cup 2018

目的:用空气质量、meteorology (气象学)、spatial topology (空间拓扑)、天气预报、站点信息、时间信息来预测空气质量。难点:影响因素多,参量之间的影响是非线性的且具有时空特性,突变的噪声性质,有未知参量的影响。解决方案:建立了LightGBM、spatial-temporal gated DNN、Seq2Seq model三个模型,分别用现有数据集训练;再训练一个线...

2019-10-24 10:59:54 1024 1

原创 19IJCAI Multi-Group Encoder-Decoder Networks to Fuse Heterogeneous Data for Next-Day Air Quality Pre

本文提出multi-group Encoder-Decoder networks (MGED-Net) 模型融合多种输入特征,解决预测一天后预测给定站点,给定污染物种类(PM2.5)的污染程度的问题。难点:时空数据都存在,面临异构数据融合的问题;需要进行较长时间(一天)的预测。针对这些难点,本文提出了一个多组数据的Encoder-Decoder模型,主要贡献有三点。将空间网格的天气数据(包...

2019-10-19 23:10:07 566 1

原创 dijkstra算法针对稠密图和稀疏图的两种不同策略

迪杰斯特拉(dijkstra)算法是一种普遍用于求两点之间(或者说一个给定点到图中其他任意点)的最短路径的算法。但当图的连接较为稠密或者较为稀疏的时候,采用两种不同的思路,可以优化算法的执行速度。应用于稠密连接图的dijkstra算法所谓稠密连接就是指图之间的连接路径趋近于n的平方(n为图中节点的个数)。在稠密连接的条件下,dijkstra算法的算法复杂度是O(n^2)。算法思想是分两步走:...

2019-10-15 01:00:18 2698

原创 线性代数常用知识点总结

矩阵的四个基本子空间矩阵的四个基本子空间分别是列空间、零空间、行空间、左零空间。对于m×n维的矩阵A:列空间C(A),是方程Ax=b中b的解空间。可以理解为有列向量组成的矩阵A的线性组合。维数是rank(A)。零空间N(A),是方程Ax=0中x的可行解空间。维数是n-rank(A)。行空间C(A^T),是A转置的列空间。维数是rank(A)。左零空间N(A^T),是A转置的零空间。维...

2019-10-14 16:17:22 2712

原创 主成分分析(PCA)算法的介绍、解释和证明

算法的目标主成分分析(PCA)算法的目标是将一组p维的样本数据降为d维;需要满足两个条件:样本数据各点与其映射到d维中的点的距离尽量近。样本数据映射到d维之后,他们的投影之间的相互距离尽可能远。(其实这两个条件是等价的。)举个例子,如果p=2,d=1,则PCA算法可以由下图表示:算法的步骤对所有的样本进行中心化操作,如果有m个样本数据,中心化操作如下:xi←xi−1m∑i...

2019-10-10 16:59:50 1804

原创 吴恩达机器学习公开课

本文主要总结吴恩达老师机器学习公开课的知识点。课程共8次编程作业已经上传到我的GitHub上了。链接为:https://github.com/Andyflying/ML-assignment-professorNg回归和分类回归问题是指用已知数据拟合一个合适的假设函数h(x),或者可以理解为曲线,来预测新输入的变量的输出结果,如给定房间的大学位置等信息,预测房价。而分类问题,顾名思义,是指用...

2019-09-26 16:45:41 462

原创 Windows+anaconda环境下安装labelme

1.安装anaconda。2.打开anaconda prompt,依次输入:conda create --name=labelme python=3.5 #考虑兼容性,这里我们选择Python3activate labelmeconda install pyqtpip install labelme由于Python2和Python3存在兼容性问题,我们统一使用Python3。参考文...

2019-08-28 19:03:10 935 1

原创 Educational Codeforces Round 60 (Rated for Div. 2), problem: (C) Magic Ship 二分法

本题分析可知每天风向加自主航行可保证船不远离目标。可以知道最大天数应为m*(x1+y1),如果这些天不能抵达目的地则为永远不能到达,可以将本题转化为二分法查找类问题,用二分法查找找到可以到达目的地坐标的最小的天数即可,算法复杂度为O(log(mx))。ac代码:#include <bits/stdc++.h>#define FOR(I,A,B) for(int I = (A); ...

2019-03-03 17:28:03 200

原创 Codeforces Round #539 (Div. 2), problem (C) Sasha and a Bit of Relax

本题异或“⊕”应想到如果连续数组段前一半和后一半异或结果相等,则整个段异或应为零,所以从数组初始位置开始累积异或,碰到和前边相同的数字就说明中间段异或为零,如果开始和结束的地方同为奇数或偶数,则符合题目(l+r-1)/2为偶数的要求。Ac代码:#include <bits/stdc++.h>#define FOR(I,A,B) for(int I = (A); I < (B...

2019-02-22 14:56:56 127

原创 数据结构学习笔记------红黑树(附c++代码)

目录:1、 红黑树简介2、 左旋和右旋操作3、 添加节点操作4、 删除节点操作1、红黑树简介红黑树是二叉查找树的一种,其增删改查的统计性能要优于AVL树,查找、插入、删除算法的复杂度都为O(log(n))。先附上红黑树这种数据结构的性质:性质1、节点是红色或黑色。性质2、根节点是黑色。性质3、每个叶节点(是指的空节点,nil节点)是黑色的。性质4、每个红色节点的两个子节点都是黑...

2018-11-21 11:10:13 392

原创 西瓜书自学笔记第一章——绪论

本章主要介绍了机器学习是干什么的,以及机器学习的一些基本术语,发展历程和应用现状。我举一个工程当中的例子来说明一下这一章讲到的机器学习基本属于和概念的内容。假设现在我们有若干张书的照片和若干张笔的照片,我们的任务是让计算机利用现有的照片进行学习,然后输入一张新的照片时,判断出是书的照片还是比的照片,这就是机器学习要完成的任务。1、现有的若干张照片叫做“数据集”。2、“数据集”中的某一张照片叫...

2018-11-18 21:34:05 239

原创 西瓜书自学笔记第零章——序言

每次拿到一本书,我都会从第一页开始翻。看看作者或者是知名的读者写在前面的话,往往能够更好的把握这本书,甚至这个领域的脉络和方向。读完《机器学习》这本书的序言,作为小白的我可以说是很好的了解到了机器学习的历史,现状以及未来,还有《机器学习》这本书的定位,大体脉络,可以说是受益匪浅。下面简要总结下要点:1、 机器学习的发展历程是从符号学习到统计学习,现在所用到是主流机器学习的方法是属于统计机器学习...

2018-11-18 20:41:20 231

原创 数据结构学习笔记------并查集(附cf例题)

并查集是将原始的数据集S看成一个森林,每棵树代表一个集合。初始时,每个数据看成一颗只有根节点的树,根据具体要求,将若干树合并起来组成若干个含有节点较多的树,每棵树就是一个集合。此数据结构可以方便的对数据集S进行:(1)查找其属于哪个集合(2)将一个集合合并到另一个集合的操作。要注意的是,为了查找方便,所以属于同一集合的节点应该连接到同一根节点,这样就避免了迭代查找造成的时间浪费,所以在合并集合的时...

2018-11-17 14:44:54 288

原创 Intel Code Challenge Elimination Round (Div. 1 + Div. 2, combined), problem: (C) Destroying Array并查集

我本题的思路是反过来考虑,即应该从全部销毁的状态,一个一个的恢复这些数字。这样可以用并查集的思想解决问题,不至于导致Time Limit Exceeded。ac代码:#include <bits/stdc++.h>#define FOR(I,A,B) for(int I = (A); I < (B); I++)#define FORE(I,A,B) for(int I =...

2018-11-17 14:40:18 197

原创 深度学习调试网络时常用的优化算法总结

自己的小项目在实际调试中出现过的优化模型的算法,这里做一个总结。1、 学习率调整(避免欠拟合)2、 正则化(避免过拟合)3、 Dropout(避免过拟合)4、 提前终止(避免过拟合)学习率调整:在训练网络的时候,已不变的学习率学习往往不能找到最优解,从而使loss值不在下降,可以使用动态学习率调整的方法,也就是说每次训练完一个batch或者一轮epoch,学习率就下降一点。下降的多少可...

2018-11-16 17:34:32 379

原创 深度学习入门项目完整流程——图片制作数据集、训练网络、测试准确率(TensorFlow+keras)

首先将训练的图片和标签制作成数据集,我用的是numpy库里的savez函数,可以将numpy数组保存为.npz文件(无压缩,所以文件较大)。import cv2 as cvimport numpy as npimport osimport glob#调整图像的大小、制作数据集def img_process(subpath,path_list): print('This is',su...

2018-11-10 10:37:22 6146

原创 Educational Codeforces Round 51 (Rated for Div. 2), problem: (D) Bicolorings(DP)

每加一列的组合个数可以递推得到,显然具有最优子结构,可用DP的方法。每加一列有四种可能的情况,所以状态转移方程为:dp[i][j][0]=(dp[i-1][j][0]+dp[i-1][j][1]+dp[i-1][j][2]+dp[i-1][j-1][3])%998244353dp[i][j][1]=(dp[i-1][j-1][0]+dp[i-1][j][1]+dp[i-1][j-2][2]+d...

2018-11-05 10:50:21 136

原创 Codeforces Round #517 (Div. 2), problem (D) Minimum path 贪心

本题运用贪心算法,需要按照字典序输出路径,路径包含2n-1个字符,只需要按正序求出当前情况下的最优解即可。需要注意的是当最优解相同的时候需要保留剩余更改次数更大的那个路径。在求解本题的过程中由于构思的偏差出现了Runtime error、Memory limit exceeded等错误。在这里记录一下错误原因。Runtime error的错误原因主要有数组访问越界(我就是)、发生除零错误、大数...

2018-11-03 17:55:31 211

原创 Codeforces Round #511 (Div. 2), problem: (C) Enlarge GCD 数论

思路大体是先找到an取值范围内的质数并保存,求出输入的数据中最大公倍数并将a数组都除以最大公倍数,然后遍历an的取值范围(从2开始,1不算),如果是质数就统计这个质数和它的倍数,就是使最小公倍数增加所需要去掉的数的个数,遍历过程中取最小值即可。并注意判定特殊情况。这个方法几乎要超时了似乎有更好的办法,但是我没想到。ac代码:#include <bits/stdc++.h>#def...

2018-10-31 20:40:05 178

原创 Codeforces Round #510 (Div. 2), problem (D) Petya and Array 分治

本题如果采用两层for循环遍历每个l和r,时间复杂度为O(n2),将会超时。所以可以采用分治的算法,将数组二分递归,完成一个分支之后将此次l和r之间的数进行排序,目的是能以O(n)的时间复杂度统计出此分支符合要求的个数。ac代码:#include <bits/stdc++.h>#define FOR(I,A,B) for(int I = (A); I < (B); I++)...

2018-10-31 20:38:05 154

原创 Bubble Cup 11 - Finals [Online Mirror, Div. 2], problem (H) Palindrome Pairs 字符处理优化

此题是字符处理,两两枚举判断时间复杂度为O(n2),不能满足要求,可以利用小写字母只有26个可以优化时间复杂度。如果字符串字母都为偶数或者只有一个字母为奇数,则两两符合条件。统计每个字符串奇数字母并记录再根据上述条件求解即可,时间复杂度为O(n)。ac代码:#include <bits/stdc++.h> #define FOR(I,A,B) for(int I = (A); I...

2018-10-31 20:24:43 237

翻译 STM32Cube 简单实验的翻译

6.1 创建一个新的STM32CubeMX工程 1.在开始菜单中选择File>New Project或者在欢迎界面中选择New Project 2.选择MCU Selector tab 然后进入STM32 芯片集选择对应型号的设备 3.选择MCU并点击OK用MCU信息填充的STM32CubeMX视图:通过对Window> Outputs 的取消选择,清除MCU的选择按钮窗口6.2 配置MCU引

2017-02-13 00:37:58 1427

原创 stm32实现简易程序在线更新的原理简述

stm32要想更新程序,一般的做法就是用j-link或者串口下载。那可不可以实现不限通信方式,实现在线更新呢?为了实现在线更新的这个功能,我写了一段简易的类似BootLoader的程序。原理就是在应用程序执行之前添加一段代码,可以选择一种通信方式来接收新的应用编译完成生成的bin文件,然后固化到flash中,并跳转到应用程序中执行相应代码。又在应用程序代码中给出了一个接口,在执行应用程序的时候也可以

2016-11-09 21:05:06 3115

原创 如何使用变参函数?

对于C语言的初学者来说printf函数是经常被使用的。那么大家有没有注意到printf函数形参的数量是不确定的?我们是否可以实现一个类似printf这样的变参函数呢?

2016-11-06 23:53:12 709

空空如也

空空如也

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

TA关注的人

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