首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

scipy.sparse、pandas.sparse、sklearn稀疏矩阵的使用

文章目录 1 scipy.sparse 1.1 SciPy 几种稀疏矩阵类型 1.2 lil_matrix 1.3 矩阵的通用属性 1.4 稀疏矩阵存取 2 pandas.sparse 2.1 SparseArray...2.2 新建SparseDataFrame 2.3 格式转化 2.4 稀疏矩阵的属性 2.5 scipy.sparse与pandas.sparse 3 sklearn 1 scipy.sparse 参考...矩阵属性 from scipy.sparse import csr_matrix ### 共有属性 mat.shape # 矩阵形状 mat.dtype # 数据类型 mat.ndim # 矩阵维度...通用方法 import scipy.sparse as sp ### 转换矩阵格式 tobsr()、tocsr()、to_csc()、to_dia()、to_dok()、to_lil() mat.toarray...csr_matrix((data, (row, col)), shape=(row_index, max_col+1)).toarray() #当特征维度过大时,选下面这种方式(加toarray()和不加都是

1.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

卷积操作转化成矩阵乘法

2015/04/20/why-gemm-is-at-the-heart-of-deep-learning/ 平常都是无脑使用Pytorch提供的nn.Conv2d方法,但是并不关心具体该如何实现,原来是把卷积操作转化成矩阵乘法...,而不是真的通过滑动卷积核来做卷积,下面做具体介绍。...[image.png] 下面是用这个卷积核对输入图像做卷积操作,最后得到一个2维的平面 [image.png] 由下图可以看到卷积操作其实就是把输入图像划分成若干个块(patch),每个块的维度和卷积核保持一致...然后我们可以把每个3维的patch展开成一维向量,然后拼接起来得到一个二维矩阵。 [image.png] 因为每个patch都是和相同的卷积核做卷积,那么我们也可以同样把卷积核展开成以为向量。...下图中右边的卷积矩阵表示多个卷积核拼凑的结果。

1K30

图像卷积应用

图像进行边缘检测 kernel=np.array([[-1,-1,-1], [-1,8,-1], [-1,-1,-1]]) #使用OpenCV内置的卷积函数 res=cv2.filter2D(img...,-1,kernel) #显示卷积后的图像 plt.imshow(res) pylab.show() 算法:图像卷积应用是图像与卷积核之间的卷积操作使得新图像具有某种特征,如模糊、锐化、浮雕等。...从原理上与一维信号卷积计算过程基本类似:将卷积核视为1个m×n大小的窗口依次在图像上滑动,将图像每个像素点上的灰度值与对应的卷积核上的数值相乘,然后将所有相乘后的值累加作为卷积核中间像素对应像素的灰度值...图像卷积时一般不进行边缘填充,因此,卷积操作可能会导致图像变小(损失图像边缘)。在进行卷积计算之前,卷积核同样需要180°翻转。...如图,输入为1个大小7像素×7像素的图像,卷积核大小为3像素×3像素,以计算输入图像中第2行第2个像素点的卷积为例,先将卷积核的中心数值(此处为0),与该像素点对齐,然后将以其为中心的所有9个像素点分别与卷积核中的对应元素相乘

23110

深度可分离卷积、分组卷积、扩张卷积、转置卷积(反卷积)的理解

1.2 深度可分离卷积的过程 而应用深度可分离卷积的过程是①用16个3×3大小的卷积核(1通道)分别与输入的16通道的数据做卷积(这里使用了16个1通道的卷积核,输入数据的每个通道用1个3×3的卷积卷积...1.3 深度可分离卷积的优点 可以看出运用深度可分离卷积比普通卷积减少了所需要的参数。重要的是深度可分离卷积将以往普通卷积操作同时考虑通道和区域改变成,卷积先只考虑区域,然后再考虑通道。...2.1 什么是分组卷积 在说明分组卷积之前我们用一张图来体会一下一般的卷积操作。 ?...转置卷积和反卷积的区别 那什么是反卷积?从字面上理解就是卷积的逆过程。值得注意的反卷积虽然存在,但是在深度学习中并不常用。而转置卷积虽然又名反卷积,却不是真正意义上的反卷积。...但即使不知道这个矩阵,转置卷积的具体工作也应该能够明白的。

2.2K20

深度可分离卷积、分组卷积、扩张卷积、转置卷积(反卷积)的理解

而以往标准的卷积过程可以用下面的图来表示: 1.2 深度可分离卷积的过程 而应用深度可分离卷积的过程是①用16个3×3大小的卷积核(1通道)分别与输入的16通道的数据做卷积(这里使用了16个1通道的卷积核...1.3 深度可分离卷积的优点 可以看出运用深度可分离卷积比普通卷积减少了所需要的参数。重要的是深度可分离卷积将以往普通卷积操作同时考虑通道和区域改变成,卷积先只考虑区域,然后再考虑通道。...2.1 什么是分组卷积 在说明分组卷积之前我们用一张图来体会一下一般的卷积操作。...转置卷积和反卷积的区别 那什么是反卷积?从字面上理解就是卷积的逆过程。值得注意的反卷积虽然存在,但是在深度学习中并不常用。而转置卷积虽然又名反卷积,却不是真正意义上的反卷积。...但即使不知道这个矩阵,转置卷积的具体工作也应该能够明白的。

53320

矩阵卷积运算过程讲解「建议收藏」

根据离散二维卷积公式: 其中A为被卷积矩阵,K为卷积核,B为卷积结果,该公式中,三个矩阵的排序均从0开始。...现在对于上面卷积过程进行分析:我们用来做例子的 A 矩阵为 m×m(3×3)二维矩阵(被卷积矩阵),K 为 n×n(2×2)的二维矩阵卷积核)。...卷积核 K 矩阵翻转 180°,得到: 被卷积矩阵扩展到(m+n)×(m+n)大小,将扩展部分用 0 代替,将卷积核 K 从左上角顺序地行移动,再换行,继续,直到抵达右下角。...实际应用 关于卷积计算,在 Python 中存在于 scipy 的 signal 模块,这里需要介绍一下 scipy.signal.convolve2d 函数。...注意:假如被卷积矩阵(3×3)和卷积核(3×3)做卷积运算时,6×6 矩阵扩充时,扩充结果如下: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

1.4K40

机器学习中的矩阵向量求导(五) 矩阵矩阵的求导

矩阵向量求导前4篇文章中,我们主要讨论了标量向量矩阵的求导,以及向量向量的求导。...本文我们就讨论下之前没有涉及到的矩阵矩阵的求导,还有矩阵向量,向量矩阵求导这几种形式的求导方法。     ...本篇主要参考了张贤达的《矩阵分析与应用》和长躯鬼侠的矩阵求导术 1....目前主流的矩阵矩阵求导定义是矩阵先做向量化,然后再使用向量向量的求导。而这里的向量化一般是使用列向量化。...关于矩阵向量化和克罗内克积,具体可以参考张贤达的《矩阵分析与应用》,这里只给出微分法会用到的常见转化性质, 相关证明可以参考张的书。

2.4K30

如何图片进行卷积计算

1 问题 如何图片进行卷积计算?...nn.Conv2d(in_channels=3,\ out_channels=16,kernel_size=3,\ stride=1,padding=1) (4) 建立全连接层然后图片进行卷积计算...,然后图片进行拉伸,再将拉伸后的图片交给全连接层,最后打印救过卷积计算的图片的尺寸 fc = nn.Linear(in_features=32*28*28,\ out_features=10)...= torch.flatten(x,1) # [128,32*28*28] out = fc(x) print(out.shape) 3 结语 这次实验我们更加深入的了解了torch的有趣之处,通过图片进行卷积计算...,设置卷积计算的通道,设置卷积核尺寸大小,设置步长,设置补充,最后进行拉伸,得到最后的图片的尺寸,让我卷积有了进一步的了解,卷积的使用以及深度学习的魅力有了进一步的了解。

16220

矩阵乘法的深入理解

本文是《机器学习数学基础》第2章2.1.5节矩阵乘法内容的补充和扩展。通过本节内容,在原书简要介绍矩阵乘法的基础上,能够更全面、深入理解矩阵乘法的含义。...设线性变换 的矩阵为 阶矩阵 ,线性变换 的矩阵为 解矩阵 ,则: 所以,符合线性变换 的矩阵有 和 来决定。 若定义: ,即矩阵乘法。...以行列展开 对于两个矩阵的乘法 ,还可以表示成多个矩阵的和: 这种方式的展开计算,在矩阵分解中会有重要应用(参阅《机器学习数学基础》第3章3.5.2节特征分解)。...设 是实对称矩阵,则 ,其中 为对角矩阵, ,有: 此外,还可以分块矩阵为单元,实现矩阵乘法计算,而事实上,上述以行或者列向量作为计算单元,亦可视为分块矩阵。...此处不单独演示分块矩阵的计算。 在以上几种矩阵乘法的理解中,其本质是采用不同的计算单元。这有助于我们将其他有关概念综合起来,从而加深矩阵乘法的含义理解。

1.6K20

机器学习 | SVD矩阵分解算法,矩阵做拆分,然后呢?

这其实是一种线性代数算法,用来矩阵进行拆分。拆分之后可以提取出关键信息,从而降低原数据的规模。因此广泛利用在各个领域当中,例如信号处理、金融领域、统计领域。...由于它是一个对角矩阵,除了对角元素全为0,所以我们只需要求出它当中的每一个对角元素,也就是奇异值就可以了,我们假设奇异值是,我们SVD的式子进行变形: 这个推导当中利用了V是酉矩阵的性质,所以我们乘上了...首先复习一下PCA算法,我们首先计算出原始数据的协方差矩阵X,再进行矩阵分解,找到最大的K个特征值。然后用这K个特征值对应的特征向量组成的矩阵原始数据做矩阵变换。...SVD和PCA一样底层都是基于矩阵的线性操作完成的,通过SVD的性质,我们可以对原数据进行压缩和转化。基于这一点,衍生出了许多的算法和应用场景,其中最经典的要属推荐系统中的协同过滤了。...由于篇幅限制,我们将会在下一篇文章当中和大家分享这一点,实际了解一下SVD的应用,加深一下理解。 由于SVD可以实现并行化计算,使得在实际当中它更受欢迎。

1.5K30

im2col:将卷积运算转为矩阵相乘

目录 im2col实现 优缺点分析 参考 博客:blog.shinelee.me | 博客园 | CSDN im2col实现 如何将卷积运算转为矩阵相乘?...上图为3D卷积的传统计算方式与矩阵乘法计算方式的对比,传统卷积运算是将卷积核以滑动窗口的方式在输入图上滑动,当前窗口内对应元素相乘然后求和得到结果,一个窗口一个结果。...相乘然后求和恰好也是向量内积的计算方式,所以可以将每个窗口内的元素拉成向量,通过向量内积进行运算,多个窗口的向量放在一起就成了矩阵,每个卷积核也拉成向量,多个卷积核的向量排在一起也成了矩阵,于是,卷积运算转化成了矩阵运算...对于卷积核,有dst_channels= weight->num();个卷积核,因为是行有先存储,卷积核对应的二维矩阵尺寸为dst_channels*(kernel_size)。...优缺点分析 将卷积运算转化为矩阵乘法,从乘法和加法的运算次数上看,两者没什么差别,但是转化成矩阵后,运算时需要的数据被存在连续的内存上,这样访问速度大大提升(cache),同时,矩阵乘法有很多库提供了高效的实现方法

2.3K10

python的高级数组之稀疏矩阵

对于稀疏矩阵,采用二维数组的存储方法既浪费大量的存储单元来存放零元素,又要在运算中浪费大量的时间来进行零元素的无效运算。因此必须考虑稀疏矩阵进行压缩存储(只存储非零元素)。...Scipy.sparse模块提供了许多来自于稀疏矩阵的不同存储格式。这里仅描述最为重要的格式CSR、CSC和LIL。...(1) 压缩稀疏行(CSR,Compressed Sparse Row):或csr_matrix  按行矩阵进行压缩的。    ...CSC(Compressed Sparse Column),用于CSC格式的类型为:csc_matrix  按列矩阵进行压缩的。...dot,用于矩阵-矩阵或者矩阵-向量乘法运算,返回csr_matrix或Numpy array 例如:import numpy as np import scipy.sparse as sp A=np.array

2.9K10
领券