自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

斯斯的博客

学习总结

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

原创 C++ socket网络编程——即时通信系统

一:项目内容本项目使用C++实现一个具备服务器端和客户端即时通信且具有私聊功能的聊天室。目的是学习C++网络开发的基本概念,同时也可以熟悉下Linux下的C++程序编译和简单MakeFile编写二:需求分析这个聊天室主要有两个程序:1.服务端:能够接受新的客户连接,并将每个客户端发来的信息,广播给对应的目标客户端。2.客户端:能够连接服务器,并向服务器发送消息,同时可以接收服务器发来的消息。即最简...

2018-06-07 09:14:12 56105 29

转载 new 与 malloc

new与malloc的10点区别1. 申请的内存所在位置new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。而堆是操作系统中的术语,是操作系统所维护的一块特殊内存,用于程序的内存动态分配,C语言使用malloc从堆上分配内存,使用fr...

2018-04-26 09:28:17 266

原创 两个有序序列,返回中位数(或者第k个)

这个问题其实蕴含了两道题目,一个是合并两个有序序列,一个是查找合并后序列中的中位数(第二个问题,不需要实际的合并操作)合并有序序列比较简单,以下是代码供简单参考:void merge_order(list<int>&des,const list<int>&a,const list<int>&b){ for(auto i=a.cbegi...

2018-04-18 09:37:53 570

原创 DFS深度优先搜索

什么是深度优先搜索?深度优先搜索(DFS)是搜索手段之一。是从某个状态开始不断转移状态直到无法转移为止,然后退回到前一步状态继续转移其他状态,可以想象为一个沿树爬行的虫子,在一个交叉口他会首先随机选择一条分岔路口一直走下去直到死路为止,然后会返回到这个交叉口沿着另一条分支爬行下去,直到遍历所有可能的路径为止。根据这个特点,DFS算法用递归来实现比较简单。举例说明之:下图是一个无向图,如果我们从A点...

2018-04-13 15:06:37 289 4

原创 根据先序/后序、中序遍历得到后序/先序遍历并按层打印树

两个遍历确定一棵树,其中必须有一个是中序遍历。现在有一个问题,已知二叉树的前序遍历和中序遍历:PreOrder:          GDAFEMHZInOrder:            ADEFGHMZ我们如何还原这颗二叉树,并求出他的后序遍历?我们基于一个事实:中序遍历一定是 { 左子树中的节点集合 },root,{ 右子树中的节点集合 },前序遍历的作用就是找到每颗子树的root位置。输入:...

2018-04-11 16:08:57 616

原创 各种算法的复杂度集合

图算法: 排序算法:

2018-04-10 20:45:08 607

原创 进程,线程 and 死锁

进程是CPU资源分配的最小单元。(电脑打开个qq,打开个迅雷等都是进程)线程是CPU调度的最小单元。(qq里发送一段文字,和女朋友开个视频都是线程)线程是建立在进程基础上的一次程序运行单位。进程的状态:相关知识点:1)一个进程,至少包含一个线程,同一个进程,可以包含多个线程。2)线程共享同个进程的所有资源(寄存器,堆栈,上下文等),所以线程在进行时一般要进行同步和互斥。3)进程结束后它拥有的所有线...

2018-04-10 19:04:56 294

原创 操作系统杂记

1.进程状态:2.协议:PPP协议,HDLC协议:PPP协议是面向字节的协议,应用在直接连接两个结点的链路上  HDLC(High-level Data Link Control,高级数据链路控制)面向比特的链路层协议。3.数据总线数据总线的位数是微型计算机的一个重要指标,通常与微处理器(CPU)的字长相一致。例如, Intel 8086 微处理器字长 16 位,其数据总线宽度也是 16 位。...

2018-04-10 17:32:37 110

原创 特征选择L1正则化与过拟合L2正则化。

我们将属性称为特征,针对各种特定的学习任务,特征的重要程度不同,对当前任务有用的属性称为“相关特征”,没什么用的属性称为“无关特征”,从给定的特征集合中选择出相关特征子集的过程,就是特征选择。特征选择:过滤式选择,包裹式选择,嵌入式选择。其中嵌入式选择:是将特征选择过程与学习器训练过程融为一体。即在训练的同事自动进行了特征选择。对于过拟合问题,我们经常引入正则化项,L1,L2正则化都有助于降低过拟...

2018-04-10 15:53:06 4667 2

原创 Tensorflow项目实战——句子分类(Sentence Classification)

项目来源:Github数据集:MR: 一句话的电影评论。分类涉及检测积极/消极的评论(Pang and Lee, 2005)。关键概念:embedding-layer ; 词向量层参考:博文1    博文2: 对论文进行了详细的翻译在输入层,每一个单词用一个实数向量表示,这个向量被称为"词向量"(word embedding)。词向量可以形象地理解为将词汇表嵌入到一个固定维度的实数空间里,将单词编...

2018-03-30 20:33:37 2594 4

原创 自己构建的哈希表,使用起来比STL的map更加方便

STL的map 虽然可以自动按键值升序对元素进行排序,但是在按顺序访问元素时,必须依赖迭代器,而map,set等不是随机存取的迭代器并不支持算术运算,这给程序设计带来诸多不便,所以多利用自己建的哈希表,会带来很多便利。1.利用vector<pair<type,type>>来建立哈希表://万能头文件,包含了c++所有的头文件#include <bits/stdc++...

2018-03-30 17:50:27 250

原创 网络基础杂记

数字签名的算法很多,应用最为广泛的3种是IIash签名、DSS签名、RSA签名。EEE 80 2.3标准采用 CSMA/CD,并用二进制指数退避和1-坚持算法。滑动窗口协议: 有序接受:发送窗口 + 接收窗口 <= 2^n,而接收窗口的最小值是1,所以发送窗口最大值是2^n-1 无序接收:发送的可能是乱序的,这就要求接收窗口有很大的尺寸来容纳乱序的序列.也就是说接收窗口至少要和发...

2018-03-27 16:15:47 793

原创 OSI模型

IOS模型,7层模型。是理论参考模型,并不是国际标准(国际标准是TCP/IP)物理层:数据链路层:1)交换机工作在数据链路层。交换机根据MAC地址寻址,通过站表选择路由,站表的建立和维护由交换机自动进行。交换机最大的好处是快速。交换机中用户权限分为4个级别(访问级,监控级,系统级,管理级)。2)一层交换机:只支持物理层协议;二层交换机:支持物理层和数据链路层协议,如以太网交换机;三层交换机:支持物...

2018-03-27 15:29:41 391

原创 C++笔试题常用STL以及其他小操作使用汇总

字符串stringsubstr操作:string s("lewis");//返回一个string 包含s中从pos开始的n个字符的拷贝 默认0-s.size()s.substr(pos,n);改变string的方法:string s("lewis");s.insert(pos,args); //在pos之前插入 注意这里pos使用下标,使用迭代器会报错。s.erase(pos,len); ...

2018-03-26 20:54:06 575

转载 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

今天使用语句image_raw_data_jpg = tf.gfile.FastGFile('../test_images/test_1.jpg', 'r').read()1读取图片文件的时候遇到了以下问题:         'utf-8' codec can't decode byte 0xff in position 0: invalid start byte解决方案将’r’改为’rb’的形式...

2018-03-24 08:48:04 1612

原创 TensorFlow-Slim工具

TensorFlow-Slim可以更加简洁地实现一个卷积层,提高代码的可读性 import tensorflow.contrib.slim as slim 一个卷积层需要的原生API代码量:with tf.variable_scope('layer1-conv1'): conv1_weights = tf.get_variable( "weight", [...

2018-03-23 19:06:06 155

原创 动态规划

动态规划优化过程: 暴力递归 —>通过记忆计算过的数值减少迭代过程—>给计算过程规定好计算路线,使得后面的计算可以直接利用前面的结果。第一道例题会列出这一优化过程(后面的只给出动态规划的求解)Question1:有数组penny,penny中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim(小于等于1000)代表要找的钱数,求换钱有...

2018-03-22 11:51:11 331

原创 Tensorflow 实用函数集合

tf.greater(tensor1,tensor2)  a=tf.constant([1,2],name="a",dtype=tf.float32)b=tf.constant([1,0],name="b",dtype=tf.float32)sess=tf.InteractiveSession()#比较两个张量的大小并返回结果,当两个张量维度不同时,会进行类似Numpy广播操作print(...

2018-03-18 15:22:48 252

原创 经典损失函数——均方误差(MSE)

与分类问题不同,回归问题解决的是对具体数值的预测,eg:房价预测,销量预测,流量预测等均方误差的定义:均方误差#y代表输出答案,y_代表标准答案mse=tf.reduce_mean(tf.square(y_-y))但在实际问题中往往均方误差并不能很好的表达问题,比如预测销量,卖衣服,货物成本一件100元,商品利润一件20。那此时多预测一个亏100,少预测一个少挣20。所以这里面有一个权重在里面,...

2018-03-18 11:00:06 39929

原创 经典损失函数—交叉熵

通过神经网络解决多分类问题最常用的方法是设置n个输出节点,其中n为类别的个数,对每一个样例,神经网络都会得到一个n维数组作为输出结果,每一个维度对应一个类别,那么如何判断一个输出向量和期望向量有多近呢?交叉熵(cross entropy)是常用的评判方法之一,交叉熵刻画了两个概率分布之间的距离。交叉熵刻画的是两个概率分布之间的距离,但是神经网络的输出却不一定是一个概率分布,所以通常使用Softma...

2018-03-18 10:50:07 616

原创 Tensorflow——Graph Tensor Session 等基本概念汇总

Tensor——张量Tensor: 数据结构  flow:计算模型 在Tensorflow的程序中,所有的数据都通过张量的形式来表示,张量只是对Tensorflow中运算结果的引用,也就是说张量里并没有真正的保存数据,他保存的是如何得到这些数据的计算过程import tensorflow as tf #这里tf.constant()生成一个常量,也是一种运算,常量生成运算,张量a 保存的就是这...

2018-03-16 18:34:28 252

原创 ReLU激活函数

最初期的线性激活函数(y=x)和阶跃激活函数(-1/1,0/1)就不说了Sigmod和Tanh:  中央区域的信号增益大,两侧的信号增益小,从生物学角度看,中央区域类似神经元的兴奋态,两侧酷似神经元的抑制态。因为在训练神经网络时,可以将重要特征置于中央区,非重要特征置于两侧区。缺点:在反向传播中梯度值会逐渐减小,经过多层的传递后会呈指数级下降,导致参数更新非常缓慢,无法起到训练作用。无法适应深层的...

2018-03-15 10:29:42 4149 1

原创 优化算法Adam

参数难以调节是神经网络另一大令人头疼的问题。比如对于SGD,一开始我们希望步子大一点,学习速率大一些,加速收敛,训练的后期又希望学习速率小一些,这样可以相对稳定的落入一个局部最优解。各种不同的机器学习问题所需要的学习速率也都不太好设置,需要反复调试。Adam: 自适应的方法可以减轻调试参数的负担,对于这些优化算法,通常使用默认他们的默认参数就可以取得一个比较好的效果,相比手工的不断调试,好的不能再...

2018-03-15 09:16:08 5208

原创 Dropout

过拟合是机器学习问题中的常见问题:在模型预测准确率在训练集上升高,但是在测试集上反而下降,也就说泛化性不好。Dropout,由Hinton教授团队提出的一个简单但却十分有效的方法,在使用复杂的卷积神经网络训练图像数据时尤其有效。一般只在全连接层使用,不在卷积层和池化层使用。只在训练集上使用,不在验证测试集上使用。大致思路 :在训练时,将神经网络某一层的输出节点数据随机丢弃一部分,eg: 随机的把一...

2018-03-15 08:39:35 622

原创 Tensorflow实现简单卷积神经网络

CNN作为一个深度学习框架结构被提出的最初诉求,是用来降低对图像数据预处理的要求,以及避免复杂的特征工程。CNN可以直接使用图像的原始像素作为输入,而不必先使用SIFT等算法提取特征,减轻了使用传统算法如SVM时必需要做的大量重复、繁琐的数据预处理工作。和SIFT等算法类似,CNN训练的模型同样对缩放、评议、旋转等畸变具有不变形,有很强的泛化性。CNN的最大特点在于权值共享一般的卷积神经网络由多个...

2018-03-14 17:10:19 292

原创 Tensorflow的hello world!——Softmax Regression 识别手写数字

from tensorflow.examples.tutorials.mnist import input_datamnist=input_data.read_data_sets("MNIST_data/",one_hot=True)print(mnist.train.images.shape,mnist.train.labels.shape)print(mnist.test.image...

2018-03-13 18:53:44 136

空空如也

空空如也

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

TA关注的人

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