- 博客(51)
- 收藏
- 关注
原创 跳表C++实现(skip_list)
skip_list.h#pragma once#include <algorithm>#include <cstdlib>#include <iostream>namespace util {#ifdef DEBUGtemplate <class T> void print(T arg) { std::cout << arg << " "; }template <typename... Args> voi
2021-10-07 13:38:28
304
原创 unp六、I/O复用:select和poll函数
为什么需要IO复用以上一章阻塞式IO的情况为例子,假设此时客户端阻塞在标准输入上,同时server在另一端向client发送了FIN同步信号,这时客户端是读不到的,就不会针对该FIN回复一个ACK,server就要不断重试直到超时,导致此次半关闭失败。IO复用的出现正是为了解决这个问题,同时监听多个描述符是否就绪或者出错。I/O模型阻塞式IO非阻塞式IO异步IOIO复用这个图片体现的并不够好信号驱动式IOselect函数/*** maxfd1 所有描述
2020-10-02 10:20:10
196
原创 2020-08-05
搭建第一个SpringBoot项目SpringBoot的出现是为了简化Spring创建,启动,调试,部署,其通过自动装配让用户更加注重业务开发本身而非xml的配置。SpringBoot配置详解其核心思想是利用约定大于配置的软件设计思想,尽可能的减少开发人员所需做的配置,在需要进行配置的时候,主要有以下配置方式:1. 默认配置文件在使用默认配置文件主要遵循以下步骤: 1. 定义一个类,封装所需要使用的properties中的属性 2. 使用@Component注解,使...
2020-08-05 15:18:39
162
原创 设计模式-4、接口隔离原则
接口隔离原则:一个方法或功能不应该被不需要它的类来调用,与单一职责原则相比,接口隔离原则更强调的是其与其调用者之间应该保持的关系,你所抽象出来的无论是一组接口或者是一个接口或方法,亦或者是OOP概念中的接口 一个接口在被一个类使用的时候,这个接口不应该存在这个类不该被访问到的方法。...
2020-08-05 13:56:43
130
原创 设计模式-3、里氏替换原则,子类和父类是怎么样的关系
里氏替换原则:在子类对象出现的地方用父类对象来替换,并不会改变程序的逻辑行为。 这其实在纠正我们面向字面理解的一个错误,在coding的世界里,父类与子类的关系不是现实生活当中的父与子关系,不应出现基因变异,按照里氏替换原则的要求,父类与子类在父类已有定义的行为上表现应该完全一致,子类应该是父类功能上的补充。 1. 首先最明显的一点:子类不与父类所注释或者所表达的功能是违反里氏替换原则原则的 2. 子类的输入或者输出或者说抛出异常以及对异常处理的方式(抛出还是捕获)与父类不一致是违反里氏替...
2020-08-05 13:31:56
531
原创 设计模式-2、面向接口编程就是对扩展开放,对修改关闭原则践行的最好方式
学习设计模式和学习数据库设计时候给我的是一样的感觉,看字面意思就能懂他想表达的是什么,但实际应用中总是不知所措。 以目前所了解到的知识,设计模式设计原则都是为了提供一个稳定的,可扩展,可读的代码,应用面向对象的四大特性-封装,抽象,多态和继承,那么如何做到对扩展开放,对修改关闭?其实用的就是封装和抽象的思想,封装好需要改变的部分,提供稳定的描述性的抽象定义。 对修改关闭是否是完全不修改,这肯定是不可能的,那怎么实现新的需求,这也是在字面意思后需要思考的部分,要关闭的是那些违反了解耦的有害修...
2020-08-05 10:17:29
354
原创 设计模式-1、我是如何理解单一职责原则的
面对对象编程一大准则:面向接口而非面向实现编程!按照以下思路学习抽象类和接口:1. 什么是抽象类,什么是接口,它们的区别是什么?抽象类与接口都是为了解决抽象问题而存在的接口:这里以Java中的接口为例,接口中只能有方法的声明,而不能有方法的实现,它更像是规定了一种协议,面向接口编码,我们可以只关注于其功能,而不用去管其实现接口没有构造方法,只能够拥有static final变量,没有方法的实现,自然也不能够被实例化,一个类可以实现多个接口抽象类:抽象类中可以包含方..
2020-08-02 17:04:49
164
原创 0401
0401 反射[ ]函数 reflect.TypeOf() 接受任意的 interface{} 类型 并以reflect.Type形式返回其动态类型fmt.Printf提供了一个缩写 %T 参数 内部使用 reflect.TypeOf 来输出 reflect.TypeOf 返回的是一个动态类型的接口值reflect.ValueOf 的逆操作是 ...
2020-04-01 16:16:42
158
原创 [csapp]3.6 控制
if-else语句与汇编语言的转换 基于数据的条件转移指令要比基于控制的快,why? 实际上,gcc是如何设计的? do-while()翻译为汇编语言 while()翻译为汇编语言,有两种方式回头复习应该注意:学习汇编源码的目的不是为了去编写汇编源码,而是看着汇编源码应该知道哪里可以有优化的地方,在回头复习的时候注意理解,基于数据的条件转移和基于控制的条件转移的效率问题,以上这些...
2019-12-05 12:59:08
216
原创 第二章 一切都是对象
第二章 一切都是对象2.1 用句柄操作对象句柄和对象的关系。即使没有电视机,遥控板亦可独立存在。也就是说,只是由于拥有一个句柄,并不表示必须有一个对象同它连接。所以如果想容纳一个词或句子,可创建一个 String 句柄:String s;2.2 所有对象都必须创建2.2.1 保存到什么地方六个可以保存数据的地方: ...
2019-09-09 11:33:43
100
原创 第一章-对象入门
对象入门1.1抽象的进步面向机器的进步到面向问题每个对象都有自己的存储空间,可容纳其他对象每个对象都有一个类型:每个对象都是某一个类的实例同一类所有对象都能接收相同的信息1.2对象的接口也就是对象的句柄,可以对对象进行的操作1.3实现方案的隐藏Interface:只定义可以发出哪些请求,但在某些地方存在着代码满足这些请求:隐藏的实现这样做有两个好处安全性:防止程序员...
2019-09-09 10:09:26
163
原创 C5W 循环序列模型
循环序列模型为什么选择序列模型?数据符号:约定了一些符号表示,详情见书。单词建立一个词典(大小为10,000的话),然后用一个独热编码向量来表示(10,000维)循环神经网络模型 (RNN model)首先,一句话之间各个单词是有关联的其次,一句话中每个单词之间有先后顺序其次,一句话中单词数量各不相同单纯的利用以前学习到的神经网络模型,比如一句话有9个单词(也就是九个独热编...
2019-08-08 16:17:24
375
原创 C4W3 人脸识别
什么是人脸识别?人脸验证:给定一个人和名字,验证是否匹配,一对一人脸识别:给定一个人,看他是谁?100个人的情况下,就需要高于99.9%的准确率One-Shot 学习在人脸验证上,有一个问题,那就是在数据库当中一个人可能仅有一张图片,那么神经网络很难通过一张图片来进行训练和学习以达到判断解决方法:学习一个相似函数给定两张照片,如果值很大,大于一个阈值,那么就是不一样的两个人如果值...
2019-08-02 09:02:28
182
原创 吴恩达(DL)-C4W2 目标检测总结和复习提纲
目标检测1 目标定位对象定位图片分类问题已经很熟悉了,构建神经网络的另一个问题,就是定位分分类问题:部基金要判断图中是不是一辆汽车,还要在图中标记处它的位置。假设是一个区分行人,汽车和摩托车的分类任务。pc,bx,by,bw,bh,c1,c2,c3p_c,b_x,b_y,b_w,b_h,c_1,c_2,c_3pc,bx,by,bw,bh,c1,c2,c3pcp_cpc...
2019-07-31 19:29:46
221
原创 7.超参数调试,batch正则化和程序框架
调试处理关于训练深度最难的事情之一就是你要处理的参数的数量来感受一下目前所能涉及的最复杂的神经网络有多少个超参数:mini−batch,β1,β2,ε,神经网络层数,每层隐藏单元数,αmini-batch,\beta_1,\beta_2,\varepsilon,神经网络层数,每层隐藏单元数,\alphamini−batch,β1,β2,ε,神经网络层数,每层隐藏单元数,α,还有可能进行学...
2019-06-07 18:16:01
239
原创 6.优化算法
title: 6.优化算法tags: deep learning,吴恩达,netrual networknotebook: Deep Learning-eodMini-batch 梯度下降向量化:把训练样本放到一个巨大的矩阵X中:X=[x[1],x[2],...,x[m]]X = [x^{[1]},x^{[2]},...,x^{[m]}]X=[x[1],x[2],...,x[m]]...
2019-06-02 10:11:12
268
原创 5.机器学习的实用层面
训练,验证,测试集训练神经网络时,我们需要做出很多决策,比如:层数,每层的隐含单元数,学习速率,各层的激活函数等但是,不可能一开始就准确预测出这些超参。从一个领域或者应用领域得来的直觉经验,通常无法转移到其他应用领域在训练集上执行算法 通过验证集简单交叉验证集选择最好的模型 在测试集上进行评估训练集,验证集和测试集的比例随着数据的样本量增长是要变化的。总体趋势是:训练集占比变...
2019-06-02 09:22:59
177
原创 yaser-1.学习问题
学习脉络:什么是学习?可以学习么?能够学习么?能够更好的学习么?家庭作业?学习问题运用一个实例进行解释:观众是如何对电影进行打分的?10%improvement = 100万美元为什么使用机器学习:电影评价相关的模式没有机器学习,我们无法精确的用数学描述出来有大量的数据机器学习的关键:一个学习模式没有确定的数学形式数据评价的人有他的`喜好`:比如喜欢动作...
2019-05-26 17:11:45
336
原创 C1W4.猫的图片分类
库函数导入import numpy as npimport h5pyimport matplotlib.pyplot as pltfrom testCases_v2 import *from dnn_utils_v2 import sigmoid, sigmoid_backward, relu, relu_backward%matplotlib inlineplt.rcParams...
2019-05-23 21:01:57
143
原创 4.深层神经网络
4.1 深层神经网络前已经提到过:神经网络的层数是指不包括输入层的其他所有层数为了使反向传播更加明了,把各个变量的表达式整理出有:Z[l]=W[l]A[l−1]+b[l]Z^{[l]}=W^{[l]}A^{[l-1]}+b^{[l]}Z[l]=W[l]A[l−1]+b[l]A[l]=g[l](Z[l])A^{[l]}=g^{[l]}(Z^{[l]})A[l]=g[l](Z[l])L(...
2019-05-23 16:04:40
208
原创 3.5 matplotlib
2.饼图(Pie Charts)绘制单分类变量的相对频率# code for the pie chart seen abovesorted_counts = pokemon['generation_id'].value_counts()plt.pie(sorted_counts, labels = sorted_counts.index, startangle = 90, ...
2019-05-20 15:38:48
229
原创 4.具有一个隐含层的平面数据分类
具有一个隐含层的平面数据分类numpy进行科学计算的基础包。sklearn数据挖掘和数据分析简单有效的工具。matplotlib是Python绘制图形的库。testCases提供了一些测试示例来评估函数的正确性planar_utils提供此赋值中使用的各种有用函数此处创建的神经网络只有1个隐含层,输入层有2个节点,隐含层4个结点,输出层1个结...
2019-05-16 17:13:41
215
原创 3.浅层神经网络
浅层神经网络概述[1]计算出z,α(第一层)z[1]=W[1]+b[1]z^{[1]}=W^{[1]}+b^{[1]}z[1]=W[1]+b[1] α[1]=sigmoid(z[1])α^{[1]}=sigmoid(z^{[1]})α[1]=sigmoid(z[1])[2]计算出z,α(第二层)z[2]=W[2]+b[2]z^{[2]}=W^{[2]}+b^{[2]}z[2]=W[2]...
2019-05-14 20:37:25
258
原创 1.3 用Google Colab进行猫的分类
用神经网络来实现精准撸猫第一步其实就是猫的分类,☺打开Google Colab后,首先第一步挂载Google Drive授权和验证!apt-get install -y -qq software-properties-common python-software-properties module-init-tools!add-apt-repository -y ppa:ales...
2019-05-11 18:53:22
963
原创 2.二分类模型
如何处理训练集在神经网络的计算中,通常先有一个前向传播(前向暂停 forward pause),接着有一个反向传播(反向暂停 backward pause)的步骤。逻辑回归:一个用于二分类的算法以猫的识别为例图片(64X64像素)在计算机中的保存:三个64X64的矩阵,对应R,G,B三种像素的强度值。定义一个特征向量,线性存储所有像素值,总维度是64X64X3。输入是X(m...
2019-05-08 22:03:57
15334
原创 12.loading data into dataframe
从文件中加载数据pd.read_csv()df_name.head()df_name.taildf_name.isnull().any()某一列是否含有NaNDate FalseOpen FalseHigh FalseLow False...
2019-05-08 15:40:41
194
原创 10.pandas
Pandas两类非常重要的数据结构:Series(序列)和DataFrame(数据框)Series类似于NumPy中的一维数组和DataFrame类似于NumPy中的二维数组Series的创建通过一维数组来创建通过字典的方式来创建通过DataFrame中的某一行或某一列来创建和DataFrame的创建通过二维数组来创建通过字典的方式来创建...
2019-05-08 15:38:09
140
原创 11.dealing-with-nan
处理缺失值df_name.isnull().sum().sum()isnull()返回一个True Or False 的二维数据框第一个sum统计每一列中NaN有多少个,并返回一个第二个统计所有的NaN同样可以计数非空值# We print the number of non-NaN values in our DataFrameprint()print('Num...
2019-05-08 15:37:44
134
原创 9.numpy
Numpy开源的python科学计算库,主要功能是用来操作数组和矩阵Numpyndim维度shape行数,列数size元素个数更像是一个网格,使其内所有元素保持相同的类型正是因为所有元素都保持了相同的类型,所有numpy可以进行向量运算,会提高很多速度优势速度更快,并且快很多集成了许多数组的计算函数创建numpy数组...
2019-05-05 13:30:21
334
原创 8.Jupyter notebooks
Jupyter notebookstext cell可以包含文本和代码文本是以markdown组织的code可以直接执行%matplotlib inline 会渲染matplotlib,直接在页面显示而不是单独打开一个窗口Jupyter notebook是语言不唯一的其主要的有Browser Notebook Server KernelBrowser进行显示...
2019-05-05 13:29:45
317
原创 7.anaconda
7.Anaconda创建一个虚拟环境conda create -n tea_facts python=3激活一个虚拟环境source activate tea_factsconda安装包conda install package-nameconda更新包conda update package-nameconda 卸载包conda remove pa...
2019-05-05 13:28:57
139
原创 2.Control Flow
Control Flowif,elif,elseif phone_balance < 5: phone_balance += 10 bank_balance -= 10if season == 'spring': print('plant the garden!')elif season == 'summer': print('water the...
2019-05-05 13:28:23
202
原创 Data Types and operation
Data Types and operationPython 赋值方式x = 2y = 3z = 5x,y,z = 2,3,5python 支持自操作运算符#variables.pyreservoir_volume = 4.445e8rainfall = 5e6rainfall -= rainfall*0.1reservoir_volume += rainfal...
2019-05-05 13:27:35
327
原创 北邮-编译原理-第一章-概述
编译概述源程序----翻译程序---->目标程序—解释程序—>结果编译的阶段和任务分析阶段词法分析语法分析语义分析综合阶段中间代码生成代码优化目标代码生产符号表的管理错误诊断与处理分析阶段词法分析扫描,线性分析词法分析器依次读入源程序中的每个字符,对构成源程序的字符串进行分解,识别出每个具有独立意义的字符串作为记号(to...
2019-02-21 17:01:14
1274
原创 一、排序
排序时间复杂度时间复杂度在百万级以下code2.1#include <bits/stdc++.h>#define FF(A,B) for(int A = 0;A<B;A++)using namespace std;int main(){ int n; int buf[100]; bool firstCase = true;...
2019-02-13 14:00:39
128
原创 北邮OJ-91 文件系统
#include<stdio.h>#include<string.h>#include<string>#include<vector>#include<iostream>using namespace std;struct FileSystem{ string name;//目录名 int no;//目录编...
2019-01-30 20:34:37
727
1
原创 leetcode-Problem-2
292.Nim Game//关键状态/*必胜状态: 1<=x<=3必输状态: */class Solution {public: bool canWinNim(int n) { return !(n%4 == 0); }};9.回文数static int x = [](){ios::sync_with_stdio(fals...
2019-01-23 10:51:37
95
原创 leetcode-Problem-1
static const auto speedup=[]{ std::ios::sync_with_stdio(false); std::cin.tie(NULL); return 0;}();//可以加速执行Problem 7:class Solution {public: int reverse(int x) { long lon...
2019-01-23 10:09:38
136
原创 homl-特征工程
机器学习项目成功的关键之一是用好的特征进行训练。也即训练集包含足够相关特征,非相关特征不多的情况。特征工程特征选择:在所有存在的特征中选取最有用的特征进行训练特征提取:组合存在的特征,生成一个更有用的特征(可以使用降维算法)收集新数据创建新特征:过拟合的发生样本量过小容易被噪声干扰模型过于复杂可能的解决方案简化模型:减少训练集的属性数,或限制一下模型收集更多的数据...
2019-01-06 23:45:17
1448
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人