- 博客(57)
- 收藏
- 关注
原创 总线协议之SAE1939【对PGN和SPN的理解】
链接: https://blog.youkuaiyun.com/wujizhishang/article/details/95099633.链接: https://zhuanlan.zhihu.com/p/197666363?utm_source=wechat_sesssion.链接: https://www.pianshen.com/article/34671887462/.链接: link.
2022-01-11 11:53:24
3789
原创 pytorch基础知识十二【反向传播算法】
反向传播算法1. 链式法则2. 所输出感知机3. 多层感知机1. 链式法则2. 所输出感知机3. 多层感知机
2021-12-15 00:04:16
1113
原创 pytorch基础知识十【激活函数、损失函数及其梯度】
激活函数、损失函数及其梯度1. 激活函数2. 损失函数loss1. 激活函数【1】激活函数简介【2】sigmoid函数【3】tanh函数【3】RELU函数2. 损失函数lossautograd.gradloss.backwardF.softmax
2021-12-12 23:15:36
660
原创 pytorch基础知识九【统计属性】
统计属性1. 范数2. p范数3. 常用统计属性4. 高级操作4.1 where4.2 gather1. 范数2. p范数3. 常用统计属性【1】mean、sum、min、max、prod;argmin、argmax(1) prod() 表示连乘(2) argmax()、argmin() 不指定维度,会将张量(tensor)打平乘一个一维的tensor,返回索引; 指定维度后,根据维度返回每一行或每一列中max或min元素的索引。【2】dim、keepdimkeepdim参数
2021-12-12 00:14:33
1602
原创 pytorch基础知识八【基本数学运算】
基本数学运算1. 加减乘除2. 矩阵乘法3. 开方4. 近似运算1. 加减乘除a = torch.tensor([[1,2,3],[4,5,6],[7,8,9]])print(a)b = torch.tensor([[10,20,30],[40,50,60],[70,80,90]])# 加法print(a+b)print(torch.add(a,b))# 减法print(torch.all(torch.eq(a-b,torch.sub(a,b))))# 乘法print(torch.
2021-12-11 22:44:17
1941
原创 pytorch基础知识七【拼接与拆分】
拼接与拆分1. 拼接1.1 cat()1.2 stack()1.3 cat() VS stack()2. 拆分2.1 split()2.2 chunk()1. 拼接1.1 cat()torch.cat([tensor1,tensor2],dim)[tensor1,tensor2]表示需要拼接的张量;dim 表示在哪个维度上拼接注意:拼接时,除了要拼接的维度外,其他维度的形状必须相同。示意图:根据不同的维度拼接1.2 stack()stack在拼接张量时,会创建新的维度。
2021-12-10 00:22:09
743
原创 pytorch基础知识六【broadcast自动扩展】
broadcase自动扩展1. 作用2. 关键点3. 需求4. 应用5. 举例1. 作用broadcast的作用是扩展维度,并且不复制数据,不小号内存。2. 关键点演示:3. 需求4. 应用5. 举例
2021-12-09 23:43:52
531
原创 pytorch基础知识五【维度变换】
维度变换1. 改变形状view & reshape2. 增删维度squeeze & unsqueeze2.1 增加维度unsqueeze()2.2 删减维度squeeze()3. 维度形状扩展expand & repeat3.1 expand()3.2 repeat()4. 二位矩阵(张量)转置操作.t()5. 维度交换(两两交换)transpose()6. 维度交换(任意交换)permute()1. 改变形状view & reshape(1).reshape(dim
2021-12-09 22:34:04
2965
原创 pytorch基础知识四【索引与切片】
索引与切片1. 索引2. 切片2.1 根据首项/尾项切片2.2 根据步长切片2.3 根据特定索引切片2.4 根据掩码切片2.5 根据索引返回指定索引上的数据集合3. torch.ge()、torch.gt()、torch.le()、torch.lt()3.1 torch.ge()3.2 torch.gt()3.3 torch.le()3.4 torch.lt()1. 索引import torcha = torch.rand(4,3,28,28) # 建立维度为4的张量print(a[0].shap
2021-12-09 20:55:59
630
原创 pytorch基础知识二【手写数字识别】
手写数字识别1. 环境配置2 .代码3. 测试结果1. 环境配置本次测试使用的显卡为30系列的显卡,对应的pytorch版本: 1.8.0+cu111,cuda版本: 11.1。注意:不同系列的显卡匹配的cuda版本也不一样,匹配不合适时无法调用GPU,或可以调用GPU但计算速度巨慢。2 .代码utils.py #该文件主要将绘图函数集中起来import torchfrom matplotlib import pyplot as pltdef plot_curve(data):
2021-12-08 22:47:52
138
原创 pytorch基础知识一【梯度】
梯度1. 引入2. 实例代码1. 引入已知函数表达式为:y = w * x + b如果求未知数w和b,可以给定两个点,联立方程求解,如下图所示:现在给满足此等式的点加入噪声,通过这一系列的点求出w和b的近似值,评价近似值是否最优的的指标为损失函数,如下图所示:如何最优化?2. 实例代码求解过程:给定初始的w和b的值,利用给定的100个观测值按梯度步长逐渐让w和b逼近到其各自的真实值。参数 = 参数 - 学习率 * 梯度import numpy as np# y = wx
2021-12-07 22:42:25
197
原创 anaconda离线安装pytorch
pytorch离线安装1.创建虚拟环境2. 进入虚拟环境3. 在虚拟环境下安装下载好的.whl文件4. 测试1.创建虚拟环境Windows下先进入命令行:win + R cmd创建虚拟环境命令:conda create -n torch11gpu python=3.72. 进入虚拟环境进入虚拟环境,在虚拟环境中安装pytorchconda activate torch11gpu3. 在虚拟环境下安装下载好的.whl文件导入离线文件的时候,要先进入到离线文件所在的目录,然后
2021-12-06 22:40:14
3043
原创 机器学习一【决策树】
决策树1. 概述1.1 决策树是如何工作的1.2 sklearn中的决策树2. DecisionTreeClassifier与红酒数据集2.1 重要参数2.1.1 criterion2.1.2 random_state & splitter2.1.3 剪枝参数1. 概述1.1 决策树是如何工作的决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。决策树算法容易理解,适用各种数
2021-12-04 23:36:23
1246
原创 MySQL基础知识六
MySQL1. 事务(Transaction)1.1 事务的概念1.2 和事务相关的语句DML语句(insert delete update)1.3 事务机制的必要性1.4 事务的特性1.5 事务之间的隔离性1.6 演示事务1.7 使用两个事务演示隔离级别2. 索引2.1 索引的概念2.2 怎么创建索引对象?怎么删除索引对象?2.3 什么时候考虑给字段添加索引?2.4 自动添加索引的情况2.5 查看sql语句的执行计划2.6 索引底层采用的数据结构是:B + Tree2.7 索引的实现原理2.8 索引的分类
2021-11-28 15:38:12
680
原创 MySQL基础知识五
MySQL1. 存储引擎1.1 完整的建表语句1.2 什么是存储引擎1.3 查看当前mysql支持的存储引擎1.4 常见的存储引擎1.4.1 MyISAM存储引擎1.4.2 InnoDB存储引擎1.4.3 MEMORY存储引擎1. 存储引擎1.1 完整的建表语句 CREATE TABLE `t_x` ( `id` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; (1)注意:在MySQL当中,凡是标识符是可以使用飘
2021-11-27 00:34:51
86
原创 MySQL基础知识四
MySQL1. union1.1 union将查询结果集相加1.2 将两张不相干的表中的数据拼接2. limit (分页查询)2.1 limit 简介2.2 limit 作用2.3 语法机制2.4 limit的执行顺序2.5 通用的标准分页sql3. 表3.1 创建表3.2 MySQL中字段常见的数据类型3.3 字段数据类型选择3.3 表中插入数据insert3.4 表的复制3.5 将查询结果放到一张表中3.6 更新数据update3.7 删除数据delete3.8 对表结构的操作3.8.1 添加字段add
2021-11-26 23:56:40
957
原创 MySQL基础知识三
MySQL1. 查询结果去重distinct2. 连接查询2.1连接查询的概念2.2 连接查询的分类2.3 笛卡尔积现象2.4 避免笛卡尔积的方法2.5 内连接2.5.1 等值连接2.5.2 非等值连接2.5.3 自连接2.6 外连接2.7 三张表的查询3. 子查询3.1 子查询的概念3.2 where子句中使用子查询3.3 from后面嵌套子查询3.4 select后面嵌套子查询1. 查询结果去重distinct查询结果去重可以利用distinct关键字,distinct关键字只能出现在所有字段的最前
2021-11-24 23:58:58
380
原创 MySQL基础知识二
MySQL1. 排序1.1 单一字段排序1.1.1升序1.1.2 降序1.2 多字段排序1.3 使用字段位置排序1. 排序排序采用order by子句,order by后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by默认采用升序,如果存在where子句那么order by必须放到where语句的后面。1.1 单一字段排序1.1.1升序 select ename , sal from emp order by sal; // 升序 select ename , sal fr
2021-11-24 00:21:55
713
原创 MySQL基础知识一
MySQL1. 数据库概述1.1 SQL概述1.2 数据库的概念1.3 MySQL概述2. MySQL基本操作2.1 通过cmd命令行登录2.2 sql、DB、DBMS分别是什么,他们之间的关系2.3 表的概念2.4 SQL语句的分类2.5 数据库初始化2.6 SQL脚本2.7 删除数据库本文关于MySQL的操作是在Windows环境下进行的。1. 数据库概述1.1 SQL概述SQL,一般发音为sequel,SQL的全称Structured Query Language),SQL用来和数据库打交道,
2021-11-23 00:15:15
488
原创 pandas模块总结二
pandas模块1. 缺失数据的处理1.1 判断数据是否为NaN1.2 缺失数据处理方式1.2.1 删除NaN所在的行列1.2.2 填充NaN所在的行列1. 缺失数据的处理1.1 判断数据是否为NaNimport numpy as npimport pandas as pdt = pd.DataFrame(np.arange(12).reshape(3, 4), index=list("abc"), columns=list("WXYZ"))print(t)t.iloc[1:, :2]
2021-11-19 21:18:14
1142
原创 pandas模块总结一
pandas模块1. 基本概念2. Series的基本操作2.1 Series的创建方法2.2 获取Series中数据的index、values2.3 Series的切片和索引2.3.1 切片2.3.2 索引2.4 pandas读取外部数据3.DataFrame的基本操作3.1 DataFrame的创建3.1.1 传入可迭代对象创建DataFrame对象3.1.2 传入可迭代对象、index、columns创建DataFrame3.1.3 传入列表创建DataFrame3.2 DataFrame的基础属性3
2021-11-16 22:19:47
668
原创 numpy模块总结二
numpy模块总结1. numpy中数组/矩阵的转置1.1 交换轴的位置 t.swapaxes(axis1,axis0)1.2 转置方法一 t.transpose()1.3 转置方法二 t.T2. numpy中数组/矩阵的索引和切片2.1 取数组/矩阵中的一行/一列2.2 连续取数组/矩阵中的多行/多列2.3 取数组/矩阵中不连续的多行/多列2.4 取单行、单列的交点2.5 取多行、多列的交点2.6 取不连续多行、多列的相交点3. numpy中数组/矩阵中元素值的修改3.1 修改数组/矩阵单个元素值
2021-11-14 22:17:57
599
原创 numpy模块总结一
numpy模块一1. numpy简介2. numpy的基本操作2.1 创建数组、矩阵2.2 查看数组、矩阵中数据的类型2.2.1 dtype 方法2.2.2 numpy中常见的数据类型2.3 数据类型的操作1. numpy简介NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算
2021-11-14 00:18:47
663
原创 matplotlib模块总结二【多种类型图的绘制】
多种类型图的绘制1. 折线图2. 散点图3. 条形图4. 直方图1. 折线图(1)绘制单条折线from matplotlib import pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']y = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]x = range(11,31)#设置图形大小plt.figure(figsize=(20,8),dpi=80)plt.plot(x,y)#设置x轴
2021-11-11 22:04:37
427
原创 matplotlib模块总结一【基本绘图操作】
基本绘图操作1. matplotlib简介2. matplotlib模块中的pyplot函数集合2.1 导入pyplot2.2 基本操作2.2.1 figure() 创建图像、设置图像大小等2.2.2 title() 创建图像标题2.2.3 figure()和title()放在一起使用2.2.4 坐标轴操作2.2.4.1 xticks()和yticks() 设置x、y轴的刻度2.2.4.2 xlim() 和 ylim() 设置坐标轴范围2.2.4.3 xlabel() 和 ylabel() 设置坐标轴标
2021-11-10 00:28:32
1443
原创 数据结构十【二叉树】
二叉树1. 基本概念2. 二叉树的性质(特性)2.1 完全二叉树和满二叉树3. 二叉树代码实现3.1定义二叉树节点3.2 树的创建3.3 二叉树的遍历3.3.1 广度优先遍历3.3.2 深度优先遍历3.3.2.1 先序遍历3.3.2.2 中序遍历3.3.2.3 后序遍历3.3.2.4 测试1. 基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)2. 二叉树的性质(特性)性质1: 在二叉树的第i层上至多有2^(
2021-11-07 00:11:10
85
原创 数据结构九【树】
树1. 树的概念2. 树的术语3. 树的种类4. 树的存储与表示5. 常见的一些树的应用场景1. 树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:(1)每个节点有零个或多个子节点;(2)没有父节点的节点称为根节点;(3)每一个非根节点有且只有一个父节点;(4)除
2021-11-06 23:52:31
98
原创 算法二【二分查找】
二分查找1. 搜索2. 二分法查找2.1 二分法代码实现2.2 时间复杂度1. 搜索搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找。2. 二分法查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如
2021-11-05 23:24:57
81
原创 算法一【排序算法】
排序算法1.排序算法的稳定性2.冒泡排序2.1 冒泡排序的分析2.2 冒泡排序的代码实现2.3 时间复杂度1.排序算法的稳定性稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。当相等的元素是无法分辨的,比如像是整数,稳定性并不是一个问题。然而,假设以下的数对将要以他们的第一个数字来排序。(4, 1) (3, 1) (3, 7)(5, 6)在这个状况下,有可
2021-11-05 21:58:09
90
原创 数据结构八【双端队列】
双端队列1. 双端队列的实现2. 双端队列的操作3. 双端队列的实现代码1. 双端队列的实现双端队列(deque,全名double-ended queue),是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队。2. 双端队列的操作(1)Deque() 创建一个空的双端队列(2)add_front(item) 从队头加入一个item元素(3)add_rear(item) 从队尾加入一个item元素(4)
2021-11-02 22:56:43
210
原创 数据结构七【队列】
队列1. 队列的实现2. 队列的操作3. 队列的实现代码1. 队列的实现同栈一样,队列也可以用顺序表或者链表实现。2. 队列的操作(1)Queue() 创建一个空的队列(2)enqueue(item) 往队列中添加一个item元素(3)dequeue() 从队列头部删除一个元素(4)is_empty() 判断一个队列是否为空(5)size() 返回队列的大小3. 队列的实现代码class Queue(object): """队列""" def __init__(self)
2021-11-02 22:52:49
73
原创 数据结构六【栈】
栈1. 栈结构实现2. 栈的操作3. 栈的实现代码1. 栈结构实现栈可以用顺序表实现,也可以用链表实现。2. 栈的操作(1)Stack() 创建一个新的空栈(2)push(item) 添加一个新的元素item到栈顶(3)pop() 弹出栈顶元素(4)peek() 返回栈顶元素(5)is_empty() 判断栈是否为空(6)size() 返回栈的元素个数3. 栈的实现代码class Stack(object): """栈""" def __init__(self):
2021-11-02 22:49:31
75
原创 数据结构五【单向循环链表】
单向循环链表1. 单向循环链表2. 操作3.代码实现1. 单向循环链表单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。2. 操作(1)is_empty() 判断链表是否为空(2)length() 返回链表的长度(3)travel() 遍历(4)add(item) 在头部添加一个节点(5)append(item) 在尾部添加一个节点(6)insert(pos, item) 在指定位置pos添加节点(7)remove(item) 删除一个
2021-11-02 21:32:41
73
原创 数据结构四【双向链表】
双向链表1. 概念2. 双向链表基本操作3.双向链表的实现1. 概念一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。2. 双向链表基本操作(1)is_empty() 链表是否为空(2)length() 链表长度(3)travel() 遍历链表(4)add(item) 链表头部添加(5)append(item) 链表尾部添加(6)insert(pos, ite
2021-11-01 23:36:23
72
原创 数据结构三【单链表】
单链表1.链表1.1 链表的定义2. 单向链表2.1 节点的实现2.2 单链表的操作2.3 单链表的实现2.4 链表与顺序表的对比1.链表顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来并不是很灵活。链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。1.1 链表的定义链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)
2021-11-01 23:28:46
117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人