首页
学习
活动
专区
工具
TVP
发布

Python机器学习算法说书人

专栏作者
163
文章
243053
阅读量
27
订阅数
Chat with RTX:定制聊天机器人体验!一键安装+离线模式设置,畅聊不停歇!
在基于 NVIDIA GPU 的强大云端服务器支持下,聊天机器人已经深入到全球数百万人的日常生活中。这些开创性的工具不仅提供了便利的沟通方式,还大大提升了信息获取和处理的效率。而现在,这些先进的 AI 技术将进一步拓展其应用场景,搭载在 NVIDIA RTX 的 Windows PC 上。这不仅实现了本地化的 AI 运算,还为用户带来了更快速、更个性化的生成式 AI 服务。无论是商务沟通、学习辅助还是娱乐互动,搭载 NVIDIA RTX 的 Windows PC 都将为用户提供更高效、更精准的 AI 支持。
不可言诉的深渊
2024-02-26
1K0
SciPy 稀疏矩阵(4):LIL(上)
上回说到,无论是 COO 格式的稀疏矩阵还是 DOK 格式的稀疏矩阵,进行线性代数的矩阵运算的操作效率都非常低。至于如何优化线性代数的矩阵运算的操作效率,继续改进三元组的存储方式可能不好办了,需要换一种存储方式。至于存储方式也不需要我们去实现,SciPy 已经实现了这样的稀疏矩阵存储方式,它就是另一个板块,这个板块共有 4 种稀疏矩阵格式,分别是{BSR, CSC, CSR, LIL},这一回先介绍 LIL 格式的稀疏矩阵!
不可言诉的深渊
2024-01-12
870
SciPy 稀疏矩阵(3):DOK
散列表(Hash Table)是一种非常重要的数据结构,它允许我们根据键(Key)直接访问在内存存储位置的数据。这种数据结构是一种特殊类型的关联数组,对于每个键都存在一个唯一的值。它被广泛应用于各种程序设计和应用中,扮演着关键的角色。散列表的主要优点是查找速度快,因为每个元素都存储了它的键和值,所以我们可以直接访问任何元素,无论元素在数组中的位置如何。这种直接访问的特性使得散列表在处理查询操作时非常高效。因此,无论是进行数据检索、缓存操作,还是实现关联数组,散列表都是一种非常有用的工具。这种高效性使得散列表在需要快速查找和访问数据的场景中特别有用,比如在搜索引擎的索引中。散列表的基本实现涉及两个主要操作:插入(Insert)和查找(Lookup)。插入操作将一个键值对存储到散列表中,而查找操作则根据给定的键在散列表中查找相应的值。这两种操作都是 O(1) 时间复杂度,这意味着它们都能在非常短的时间内完成。这种时间复杂度在散列表与其他数据结构相比时,如二分搜索树或数组,显示出显著的优势。然而,为了保持散列表的高效性,我们必须处理冲突,即当两个或更多的键映射到同一个内存位置时。这是因为在散列表中,不同的键可能会被哈希到同一位置。这是散列表实现中的一个重要挑战。常见的冲突解决方法有开放寻址法和链地址法。开放寻址法是一种在散列表中解决冲突的方法,其中每个单元都存储一个键值对和一个额外的信息,例如,计数器或下一个元素的指针。当一个元素被插入到散列表中时,如果当前位置已经存在另一个元素,那么下一个空闲的单元将用于存储新的元素。然而,这个方法的一个缺点是,在某些情况下,可能会产生聚集效应,导致某些单元过于拥挤,而其他单元过于稀疏。这可能会降低散列表的性能。链地址法是一种更常见的解决冲突的方法,其中每个单元都存储一个链表。当一个元素被插入到散列表中时,如果当前位置已经存在另一个元素,那么新元素将被添加到链表的末尾。这种方法的一个优点是它能够处理更多的冲突,而且不会产生聚集效应。然而,它也有一个缺点,那就是它需要更多的空间来存储链表。总的来说,散列表是一种非常高效的数据结构,它能够快速地查找、插入和删除元素。然而,为了保持高效性,我们需要处理冲突并采取一些策略来优化散列表的性能。例如,我们可以使用再哈希(rehashing)技术来重新分配键,以更均匀地分布散列表中的元素,减少聚集效应。还可以使用动态数组或链表等其他数据结构来更好地处理冲突。这些优化策略可以显著提高散列表的性能,使其在各种应用中更加高效。
不可言诉的深渊
2023-09-12
2010
SciPy 稀疏矩阵(2):COO
上回说到,计算机存储稀疏矩阵的核心思想就是对矩阵中的非零元素的信息进行一个必要的管理。然而,我们都知道在稀疏矩阵中零元素的分布通常情况下没有什么规律,因此仅仅存储非零元素的值是不够的,我们还需要非零元素的其他信息,具体需要什么信息很容易想到:考虑到在矩阵中的每一个元素不仅有值,同时对应的信息还有矩阵的行和列。因此,将非零元素的值外加上其对应的行和列构成一个三元组(行索引,列索引,值)。然后再按照某种规律存储这些三元组。
不可言诉的深渊
2023-08-28
1900
SciPy 稀疏矩阵(1):介绍
SciPy 是一个利用 Python 开发的科学计算库,其中包含了众多的科学计算工具。其中,SciPy 稀疏矩阵是其中一个重要的工具。相比于常规的矩阵,稀疏矩阵主要的特点是它的数据大部分都是 0 ,而非 0 的数据只有少数。这种特点可以在存储和计算上节省大量的时间和空间。SciPy 提供了多种格式的稀疏矩阵,包括 COO、CSR、CSC 等多种格式。在实际应用中,SciPy 稀疏矩阵被广泛应用于图像处理、网络分析、文本处理等领域。例如,在图像处理中,为了压缩存储图像,可以将彩色图像转化为三个单色图像,然后使用稀疏矩阵存储。另外,在网络分析中,线性代数中的稀疏矩阵常被用来表示网络拓扑结构。因此,学习和掌握 SciPy 稀疏矩阵是非常有必要的。
不可言诉的深渊
2023-08-28
1990
惊!你知道PyTorch浮点数上溢问题居然会导致这些结果?!
当我们在使用 PyTorch 中的浮点数时,我们都知道它们并不能占满整个实数集 R。这主要是由于两个原因:精度和表示范围。对于计算机处理浮点数而言,精度不够的情况一般会选择截断,而超出表示范围的情况则通常会返回无穷大。然而,一旦 PyTorch 中的浮点数变成无穷大,将会出现非常奇怪的报错。因此,我们需要思考一下如何解决 PyTorch 中浮点数超出表示范围的问题。
不可言诉的深渊
2023-08-28
5840
相对分数和绝对分数
CLICK ON THE BLUE WORDS ABOVE TO FOLLOW US
不可言诉的深渊
2022-11-11
6410
torch.autograd.Function 用法及注意事项
众所周知,作为深度学习框架之一的 PyTorch 和其他深度学习框架原理几乎完全一致,都有着自动求导机制,当然也可以说成是自动微分机制。有些时候,我们不想要它自带的求导机制,需要在它的基础之上做些扩展,这个时候我们只需借用 PyTorch 框架中的 Function 类就可以实现了。
不可言诉的深渊
2022-11-11
8100
稀疏矩阵之 toarray 方法和 todense 方法
在 SciPy 稀疏矩阵中,有着 2 个经常被混为一谈的方法:toarray() 方法以及 todense() 方法。事实上,我在才开始接触 SciPy 稀疏矩阵的时候也曾经把这 2 个方法之间画上等号。但是,两者之间还是存在着很大的不同,具体有哪些不同之处我们就首先从返回值类型开始说明。
不可言诉的深渊
2022-11-11
2.9K0
k 阶奇异值分解之图像近似
我们都知道,一般情况下,一张图像在计算机中的存储格式是三个矩阵(RGB 格式),当然也有四个矩阵(RGBA 格式)或者一个矩阵(灰度图)的情形。然而,进行数据传输的过程中如果直接从发送方把数据原封不动的传给接收方会非常浪费传输带宽,传输时延也会随之增加。在不改变通信条件的情况下,要想减少带宽占用和传输时延,只能对数据进行压缩。稍微想一下,对图像的压缩不就是对矩阵的压缩吗?矩阵压缩有很多种方法,在这里我采用 k 阶奇异值分解方法。
不可言诉的深渊
2021-11-30
9240
单 Win10 系统(无虚拟机)安装 PyTorch 和 TensorFlow(都是 GPU 版本)
看到标题,可能很多人会不太可能实现,因为 PyTorch 官网和 TensorFlow 官网最新版本的框架对 GPU 版本的 CUDA 版本的要求不一样,即使使用 Python 虚拟环境也是不可能把不同版本的 CUDA 做隔离,因为 CUDA 和 Python 虚拟环境没有一点关系!即使如此,我们还是可以把两个框架的 GPU 版本都装上,只不过不能安装两个框架的最新版本!
不可言诉的深渊
2021-11-02
8680
数据结构(6):串(下)
子串的定位操作通常称为串的模式匹配,它求的是子串(常称模式串)在主串中的位置。下面给出一种不依赖于其他串操作的暴力匹配算法。
不可言诉的深渊
2021-07-01
4850
数据结构(6):串(上)
字符串简称串,计算机上非数值处理的对象基本都是字符串数据。我们常见的信息检索系统(如搜索引擎)、文本编辑程序(如 Word)、问答系统、自然语言翻译系统等,都是以字符串数据作为处理对象的。本文详细介绍字符串的存储结构及相应的操作。
不可言诉的深渊
2021-04-16
5510
数据结构(5):数组
数组是由 n(n≥1)个相同类型的数据元素构成的有限序列,每个数据元素称为一个数组元素,每个元素在 n 个线性关系中的序号称为该元素的下标,下标的取值范围称为数组的维界。
不可言诉的深渊
2021-04-16
8590
数据结构(4):队列(下)
在信息处理中有一大类问题需要逐层或逐行处理。这类问题的解决方法往往是在处理当前层或当前行时就对下一层或下一行做预处理,把处理顺序安排好,待当前层或当前行处理完毕,就可以处理下一层或下一行。使用队列是为了保存下一步的处理顺序。下面用二叉树(如图所示)层次遍历的例子,说明队列的应用。下表显示了层次遍历二叉树的过程。
不可言诉的深渊
2021-04-16
3480
数据结构(4):队列(上)
队列(Queue)简称队,也是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队;删除元素称为出队或离队。这和我们日常生活中的排队是一致的,最早排队的也是最早离队的,其操作特性是先进先出(First In Last Out,FIFO)。
不可言诉的深渊
2021-04-16
4490
数据结构(3):栈(下)
假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序任意即 ([]()) 或 [([][])] 等均为正确的格式,[(]) 或 ([()) 或 (()] 均为不正确的格式。
不可言诉的深渊
2021-04-16
5270
数据结构(2):链表(下)
上一回,我讲了一下链表的定义和基本操作的实现;这一会我们来看一下链表相关的一个典型应用:一元多项式!一元多项式的定义
不可言诉的深渊
2021-03-25
3180
数据结构(2):链表(上)
顺序表可以随时存取表中的任意一个元素,但插入和删除操作需要移动大量元素。链式存储线性表时,不需要使用地址连续的存储单元,即不要求逻辑上相邻的元素在物理位置上也相邻,它通过“链”建立起数据元素之间的逻辑关系,因此插入和删除操作不需要移动元素,而只需修改指针,但也会失去顺序表可随机存取的优点。
不可言诉的深渊
2021-03-24
7690
数据结构(1):顺序表(上)
就在昨天,我查了一下考研成绩的排名,果不其然第 1 名!因为我没有特别低的单科分数,外加上估摸着国家线十之八九不会大涨,所以我感觉我能进复试!考虑到我的复试专业课是数据结构,所以从今天开始,我将一直写数据结构的文章,直到复试结束。接下来先说几件事情,然后介绍第一个数据结构——顺序表!
不可言诉的深渊
2021-03-24
1.1K0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档