- 博客(99)
- 资源 (6)
- 收藏
- 关注
原创 常考基础知识
1.class和struct的区别class继承是private,可表示模板类型。struct是Public。2.静态成员对每个类的类型只有一个复制品,有所有对象共享访问,当作该类型的全局变量。非静态成员每个类对象都有自己的复制品。静态成员函数不属于类的对象,没有this指针。3.静态数据成员与全局变量相比的优势:1.没有进入程序的全局名字空间,不存在命名冲突。2.可设private隐藏信息。3.必须在类外面初始化。4.空类默认会产生:默认构造函数、复制构造函数、析构函数、赋值函数、取值运算5.构
2021-08-26 17:47:08
212
原创 C++独有的特点
STL容器序列容器:vector,string listvector和list的区别:vector:和数组类似,有连续的内存空间且起始地址不变,内存空间不够要重新申请内存。list:双向链表实现,空间不连续,指针访问。关联容器:set mapmap:红黑树,二叉查找树,可自动按键值排序。是标准的一部分。hashmap:哈希表,各项操作的评价时间复杂度近常数。适配容器:stack queue dequeue(动态数组,双向队列实现)STL智能指针:auto_ptr,当出现异常时,分配的.
2021-08-26 17:46:32
298
原创 遇到的问题
socket粘包处理socket超时处理完全二叉树最优路径堆和栈的区别staticconst类 多态 继承虚函数析构的几种方式指针与引用class struct区别
2021-08-26 17:45:34
206
原创 有符号和无符号自动类型转换的区别
首先说明一下什么是自动类型转换: 在计算机上进行运算时,内存上的数据一旦被储存在寄存器中(通常为int的大小),小于int的字节数的数据将被扩 展成int的字节数长度。该部分既是称为「自动类型转换」的C语言规格。有符号si8_t c;c = 0xff;id(c == 0xff){ //假}在进行[c == 0xff]比较时,左边的c 8字节整数因发生了自动类型转换,转换位Int型。带符号的整数转换位更大字节长度的类型时,符号位不变,对符号位进行扩展,...
2021-04-27 15:20:43
476
原创 C语言类型转换
1.强制类型转换A类型转换为B类型。1.当B类型长度大于A类型,能存放下A类型,结果不变2.当B类型长度小于A类型,不能存放下A类型,则对A类型的值进行截断,截断高位或者低位字节与操作系统的大小端有关,并不是所有强制类型转换都能成功。2.隐式类型转换为编译器主动进行的类型转换从低类型到高类型的隐式类型转换是安全的;而从高类型到低类型的转换是不安全的,会产生截断,从而产生不正确的结果。有以下四种情况:1、算术运算中,由低类型转换为高类型2、赋值表达式中,赋值运算符“=”右边的变量转换
2021-04-27 10:40:25
224
原创 RAM ROM
存储器分为RAM和ROMROM:全称为Read-Only-Memory。曾经为只能读不能写,出厂是什么就是什么。后来随着技术的发展,ROM也可以任意修改了、RAM:全称为Readom Access Memory。分为两类。静态RAM(Static RAM/SRAM)。读写速度最快的存储设备。成本高,存储1bit数据需要4-6个晶体管。一般用于CPU的一级/二级缓冲。数据存入后不会消失。只有下次被重新赋值或断电后才会改变或消失,Static变量存储在此。动态RAM(Dynamic RAM/
2021-04-25 11:22:32
849
原创 MCU上电做了什么
代码通过编译、汇编、连接后,生成hex文件烧录到ROM中。此时ROM中含有代码的所有信息。MCU上电,CPU从第一行代码开始执行指令(一般在startup的文件中),对RAM进行初始化。1、为全局变量分配地址空间---如果全局变量已赋初值,则将初始值从ROM中拷贝到RAM中,如果没有赋初值,则这个全局变量所对应的地址下的初值为0或者是不确定的。当然,如果已经指定了变量的地址空间,则直接定位到对应的地址就行,那么这里分配地址及定位地址的任务由“连接器”完成。2、设置堆栈段的长度及地址。堆栈段主要是
2021-04-23 11:37:50
827
原创 NULL和void*
void *指针1.无类型指针,指向一块实际存放数据的地址,但该地址存放的数据的类型不确定。可以指向任意类型的指针。如动态内存分配void * memset ( void * buffer, int c, size_t num );void * memcpy(void *dest, const void *src, size_t len);2.void类型指针指向的数据类型时不确定的,只是单纯的操作此内存块,并不关注该片内存是什么类型,所以在进行内存分配后,需要强制类型转换,在进行数..
2021-02-16 14:03:29
338
原创 我又开始做嵌入式了!!!!!
什么也不想说,就是想发泄一下现在的心情!翻了翻自己的博客,嵌入式的学习和开发大多集中在16年(四年前)!!!啊啊啊啊啊!四年了,我又回来了,真是不知道怎么形容了,同组同事,小弟弟,16年刚入大学。害,貌似了解和掌握的技术上会有代沟。还能咋整,干吧,干吧,干吧!!!...
2020-08-18 22:54:39
239
原创 postman在chrome上的插件安装和使用
一、Postmam和Postmam Interceptor的下载链接链接: https://pan.baidu.com/s/1CMTgmZioIRZLHf4YVTvSYg 提取码: 1vmg二、安装首先下载安装包。 必须先安装Postmam,再安装PostmamInterceptor。打开chrome,将下载好的安装包安装顺序放入插件中。放入方法:点击更多工具-->扩展程序,选择加载已解压扩展程序,将Postmam和PostmamInterceptor依次添加。 三、打开程序..
2020-08-12 17:18:53
2792
2
原创 vs2015多线程编程pthread环境配置
首先下载pthread的windows的安装包(链接),解压。 将解压后include文件夹里的三个文件放到vs2015编译器安装目录里VC-->include文件夹里。然后将解压后文件夹lib->x84里这三个文件放到放到vs2015编译器安装目录里VC--> lib文件夹里。 ...
2020-06-01 22:50:25
1096
2
转载 VS2015如何添加LIb库及头文件的步骤
在VS工程中,添加c/c++工程中外部头文件及库的基本步骤: 1、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。 2、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。 然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名。 3、添加工程引用的dll动态库...
2020-05-26 20:06:14
2911
原创 变量命名规范
一、驼峰命名法使用大小写字母混合命名变量和函数。如:mciSendString();第一个字母小写,每个单词的首字母大写。二、匈牙利命名法在windows下开发常用。常用命名规则为:变量名 =变量类型(前缀) +英文单词意思。前缀首字母小写,英文单词意思首字母大写。前缀 类型a 数组 (Array)b 布尔值 (Boolean)by 字节 (Byte)c...
2020-05-21 13:05:42
6198
原创 OSI模型各层的功能理解
这周的任务是学习SIP和RTSP协议,对于这两个协议之前是从未接触过,简单的百度了一下,发现是OSI应用层的协议,猛然感觉对OSI模型知识的掌握已经模糊了,在这里还是记下来吧,便于自己的理解和日后翻看。本来是昨天已经完成的任务,但晚上开会到快9点,算了,回去睡觉吧。没有春天的杭州好热好热--那么,先介绍下OSI模型的各层,下一篇记录下对SIP协议的理解。1.物理层物理层是OSI模型的第...
2019-04-09 15:18:22
896
原创 AlexNet网络练习
testAlwex.py#!/usr/bin/env python# coding: UTF-8#.npy 存放w,b参数的值import osimport urllib.requestimport argparseimport sysimport alexnetimport cv2#https://www.lfd.uci.edu/~gohlke/pythonlibs/#...
2018-11-15 20:37:55
2019
原创 深度学习短视频笔记
输入和输出的关系由模型来描述,整理好数据的下一步是选择适当的模型。前馈神经网络(隐藏层):在线性模型的基础上增加若干次(线性模型+非线性模型(激活函数)的组合)。如图在线性模型前再加两个线性模型,并且两个线性模型后都加一个ReLU非线性函数。效果:当输出小于0时取0,否则不变。 梯度就是大小为导数的值,方向指向误差值增加最快方向的向量。梯度指向误差值增加最快方向,让参数向...
2018-11-04 13:27:09
658
原创 tensorflow常见函数
Numpy.random.normal(loc=0.0,scale=1.0,size=None)高斯分布函数loc:该概率分布的均值,对应着整个分布的中心(center)scale:该概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高size:输出的shape,默认为None,只输出一个值tf.random_uniform(shape.minval...
2018-11-01 10:29:14
296
原创 CNN猫狗识别
train.pyimport datasetimport tensorflow as tfimport timefrom datetime import timedeltaimport mathimport randomimport numpy as np# conda install --channel https://conda.anaconda.org/menpo ope...
2018-10-19 20:13:30
1064
1
转载 python shape()函数和format()函数用法
shape()shape():读取矩阵长度,如shape[0]是读取矩阵第一维的长度。1.参数是一个数时,返回为空: 2.参数是一维矩阵:3.参数是二维矩阵: 4.直接用shape()可快速读取矩阵的形状,shape[0]读取矩阵第一维的长度 5.但某维度长度不一致时,读取所有维度时则不能读出长短不一致的维度 format()格式化字符...
2018-10-14 10:26:19
12804
原创 Cifar-10图像分类任务
Cifar-10数据集Cifar-10数据集是由10类32*32的彩色图片组成的数据集,一共有60000张图片,每类包含6000张图片。其中50000张是训练集,1000张是测试集。数据集的下载地址:http://www.cs.toronto.edu/~kriz/cifar.html1. 获取每个batch文件中的字典信息import pickledef unpickle(fi...
2018-10-12 21:21:38
3960
原创 简单CNNdemo
卷积神经网络添加了卷积层(激活函数),最大池化层和全连接层。卷积层:对原始图像进行特征提取。最大池化层:没有参数。压缩图像,体积变小。全连接层:把卷积提取的特征组合在一起,用组合到一起的特征再进行分类。1.导入包import tensorflow as tfimport randomimport numpy as npimport matplotlib.pyplot a...
2018-10-10 21:32:42
1080
原创 双层简单神经网络demo
#Mnist数据集 属性已经写好 可以直接调用from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tf #one_hot=True 表示对label进行one-hot编码,比如标签4可表示为[0,0,0,0,1,0,0,0,0,0,0]mnist = input_data.read...
2018-10-10 10:43:35
2290
原创 单层神经网络demo
神经网络做的是提前特征的工作,与逻辑回归相比,添加了中间层和激活函数。这里输入设置为784,输出的分类为10隐藏层:让输入的特征进行更好的组合变化,把784个特征按照某种方式映射成更高级,识别能力更强的特征。这里把隐藏层设置为50个单元。1.导入包#Mnist数据集 属性已经写好 可以直接调用from tensorflow.examples.tutorials.mnist...
2018-10-09 21:30:15
330
原创 python随笔
列表:yang = []。里面可放任何类型,没有长度限制。len(yang) 长度del a[0]删除a的第0个元素8 in a:判断8是不是在a中a.count(‘8’)查看a中有几个8.a.index(‘8’)查看8在a的第几个位置。a.append(‘8’)在a中添加8a.insert(2,’yang’)在位置2处插入yang。a.remove(‘[hah...
2018-10-08 10:55:45
116
原创 tensorflow中的tensor和session
Tensot(张量)张量:tensorflow内部的计算都基于张量,使用tf.tensor类的示例表示张量# 张量#引入tensorflow模块import tensorflow as tf#创建0阶tensort0 = tf.constant(3,dtype=tf.int32)#创建1阶tensort1 = tf.constant([3.,4.1,5.2],dtype=tf...
2018-10-05 20:58:19
1484
1
原创 Mnist数据集逻辑回归分类任务
#Mnist数据集逻辑回归分类任务from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tf#one_hot=True 表示对label进行one-hot编码,比如标签4可表示为[0,0,0,0,1,0,0,0,0,0,0]mnist = input_data.read_data_...
2018-10-05 16:25:01
1005
原创 mnist数据集
#Mnist数据集 属性已经写好 可以直接调用import numpy as npimport tensorflow as tfimport matplotlib.pyplot as pltfrom tensorflow.examples.tutorials.mnist import input_dataprint("大家吃鸡")print("下载呢")mnist = inpu...
2018-09-28 15:10:09
235
原创 tensorflow线性回归
#线性回归import numpy as npimport tensorflow as tfimport matplotlib.pyplot as plt#随机生成1000个点 围绕在y = 0.1x + 0.3直线周围num_points = 1000vectors_set = []#循环 从0到num_points依次赋值给ifor i in range(num_poin...
2018-09-28 14:02:40
214
原创 深度学习中的概念
IOU交并比函数:实际物体框与算法检测物体狂的交集大小与并集大小的比值,用来目标衡量定位的精准度 。一般大于0.5为正确。YOLU 将图片分成多个小格,分别判断每个小格中是否有目标,算法速度较快。非最大值抑制保证算法对每个对象只检测一次。实现方法:找出IOU最高的一个框,并将与这个框重合率高且IOU值较高的框抑制,。...
2018-09-20 18:58:05
258
原创 Inception网络
作用:代替人工来确定卷积层中过滤器的类型,或者确定是否需要创建卷积层或池化层。基本思想:不需要人为的决定使用哪个过滤器,或者是否需要池化,而是由网络自行确定这些参数。人们只需给出这些参数的所有可能值,然后把这些输出连起来,让网络自己学习它需要什么样的参数,采用哪些过滤器组合,所以主要用在不想选择过滤器种类的情况下。使用1*1的过滤器构建瓶颈层可减小计算成本,也不会降低性能 ...
2018-09-19 10:04:22
467
原创 几种经典网络
LeNet-5 LeNet-5主要是针对灰度图像训练,用来识别手写体数字等。随着网络层数的加深,图像的宽度和高度减小,信道数增加。最后是得到了84个特征。AlexNet 能处理非常相似的基本构造模块。采用相似的含有大量隐藏单元或数据的基本构造模块使得AlexNet表现出色。使用了ReLu激活函数。VGG-16 超参数少,是一种只需要专注构建卷积层的简单网络。有1...
2018-09-19 09:32:20
578
原创 残差网络
残差块残差块是两层神经网络在L层激活,得到a[l+1]再次进行激活。在ReLU非线性激活前加上a[l],a[l]的信息直接到达神经网络的深层 不再沿着主路径传递。也称跳远连接(捷径)。跳远连接构成残差块,残差块构成残差网络。 由此得出a[l+2]=a[l]。所以尽管多了两层,也只是把a[l]的值赋给a[l+2],建立了恒等函数。要保证a[l]和a[l+2]的维度相同 若不同...
2018-09-18 18:32:10
416
原创 受限玻尔兹曼机
马尔可夫过程:将来只依赖于现在不依赖过去的过程。马尔可夫链:时间和状态都是离散的马尔可夫过程。 BM是全连接的,RBM是可见层之间不连接,隐层之间不连接。基于对比散度的RBM快速学习算法 训练RBM输入:一个训练样本,隐层单元个数m,学习速率,最大训练周期T输出 :连接权重矩阵W,可见层的偏置向量m,隐层的偏置向量b训练阶段 :初始化:令可见层单元...
2018-09-15 22:07:10
283
原创 波尔兹曼机
是一种模拟的退火过程。梯度下降法只能往下走,不能往上走。模拟退火算法中是可以跳动的,会根据状态改变接受的概率来判断要怎么走。假设前一状态为x(n),状态改变后为x(n+1),相应的,系统能力由E(n)变为E(n+1)。系统由x(n)变为x(n+1)的接受概率为p: 温度的初始值 T要选得足够高,使得所有可能的状态转移都能被接受。退火速率:1.指数下降方式: n=1,2,....
2018-09-14 18:53:30
216
原创 Hopfield神经网络
Hopfield神经网络是一种离散型神经网络,也是反馈型神经网络,它的每一个节点的输出都是其他节点的输入。1.网络状态: 神经元的权值矩阵是对称矩阵,有 。当每个神经元的状态都不再改变时,就是反馈网络的稳定状态,稳定状态就是网络的输出。2.网络的异步工作方式:是一种串行工作方式。在网络运行时,每次只有一个神经元的状态进行调整,其他神经元的状态保持不变。调整方式如下:...
2018-09-14 10:45:43
2528
原创 BP网络数字识别
我们使用sklearn库来进行训练,识别数字0~9。1.导入包import numpy as npfrom sklearn.datasets import load_digits #数据集from sklearn.preprocessing import LabelBinarizer #标签二值化from sklearn.cross_validation import trai...
2018-09-13 14:54:21
1340
原创 深度学习入门笔记(三)————BP神经网络解决异或问题(代码)
一 网络结构 二 代码 导入包import numpy as npimport matplotlib.pyplot as plt2.输入数据X = np.array([[1,0,0],[1,0,1],[1,1,0],[1,1,1]])3.定义标签#标签 0 0 为 0 10 为1 01 为1 11 为0Y = np.array([[0,1,1,0...
2018-09-12 19:02:06
8312
1
原创 深度学习入门笔记(三)————BP神经网络算法推导
一 多层网络结构 误差反向传播,把误差从最后输出层往上传,每一层神经元都可以不断调节权值,使其达到一个最好的状态。有几个类别设置几个输出单元。层数越多,数据提取的特征越高层。二 常用激活函数Sigmoid函数 2. Tanh函数和Softsign函数 三 BP神经网络的具体实现 1.基本思想:由信号的正向传播和误差的反向传播组成。首先是正向传播,数据从输入...
2018-09-12 15:55:57
2590
原创 深度学习入门笔记(二)————线性神经网络解决异或问题(代码)
首先梳理一下思路 输入为1,0。00异或为0,01异或为1,10异或为1,11异或为0.所以输出为2类如下图可知,需要两条线划分。Madaline用间接地办法解决。多个线性函数进行划分,然后对各个神经元的输出做逻辑运算。如图,用两条直线实现了异或的划分。 线性神经网络的办法:对神经元加入非线性输入,引入非线性成分,使等效的输入维度变大 如图,输入x1,x2分别为1,0。再...
2018-09-11 20:14:55
2498
1
原创 深度学习入门笔记(二)————线性神经网络,delta学习规则,梯度下降法
一 线性神经网络 与感知器的区别,感知器激活函数的输出只有两种可能(1,-1),线性神经网络的输出可取任意值,其激活函数是线性函数。线性神经网络采用LMS算法来调整网络的权值和偏置。线性神经网络在结构上与感知器相似,但神经元激活函数不同。在模型训练时把sign函数改为purelin函数(y=x)。二 LMS学习规则 LMS使神经元实际输出与期望输出之间的平方差最小 学习信...
2018-09-11 15:48:02
2249
C语言五子棋,控制台界面,适合新手入门练习项目,包含代码详细讲解讲解 五子棋.c 五子棋代码讲解.txt
2024-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人