矩阵之上
文章平均质量分 58
yukai08008
这个作者很懒,什么都没留下…
展开
-
Python 矩阵之上14 OnMatrix4-卷积及计算
说明1 卷积的定义和理解2 连通性测试3 简单实例4 使用numpy计算5 使用torch计算内容原创 2022-01-10 11:51:17 · 542 阅读 · 0 评论 -
Python 矩阵之上13 OnMatrix3-numpy的向量复制
说明这应该是一个会频繁碰到的基本操作。由于矩阵运算会要求向量具有特定的形状,一般有两种情况:1 基于某个具体的向量进行操作2 创建某个类似placeholder的矩阵, 例如随机矩阵(np.random.rand)或者单位矩阵(np.ones)这里讨论的是第一种情况,基于具体的向量进行复制,变形。内容这篇文章解释的比较清楚,numpy可以按元素或按向量进行复制。例子:将某个一维向量复制5份。数据some_arr array([1011.347, 1060.801, 1075.656,原创 2021-12-24 10:56:23 · 1246 阅读 · 0 评论 -
Python 矩阵之上12 OnMatrix2-tensor和numpy的其他基础操作
说明内容原创 2021-12-17 18:15:19 · 793 阅读 · 0 评论 -
python 矩阵之上11 OnMatrix1-tensor的gpu和cpu转换
说明一个热身实验,熟悉一下pytorch的tensor。内容普通的计算都是发生在cpu里的,如果数据在cpu中,那么可以通过 x.numpy()方法将tensor转为numpy要调用gpu计算要 x.cuda(), 如果还要回到内存要先.cpu除chartensor外所有tensor都可以转换为numpyimport torch as torimport numpy as np a = tor.ones(5)atensor([1., 1., 1., 1., 1.])a.dev原创 2021-12-16 23:50:42 · 1165 阅读 · 0 评论 -
Python 矩阵之上10 OnMatrix-转化过程梳理
说明在折腾了一番pymc3 + theano的gpu环境搭建之后,我突然发现:核心逻辑不应该再依赖这些第三方的轮子了,而且这轮子还缺了角在未来的几个月内,我会建立自己的遗传算法和MCMC/Gibbs方法,通过pytorch的张量来使用GPU。本篇算是一个开始吧,讨论如何从现有以pandas为主的数据分析全面转向「矩阵/张量」的步骤。内容目前看来,只有矩阵计算是跨语言,跨设备的。矩阵计算可以达到单核计算的最高效率。过去,在从SAS转向python的时候是从pandas开始的,这个包也的确很好原创 2021-12-16 23:38:49 · 533 阅读 · 0 评论 -
Python 矩阵之上9 再次开始
说明很早就想继续深入这一块了,之前一方面忙一些更基础的东西,另一方面也是没有找到很合适的切入点(毕竟时间太有限了,不能改进时效比的事不能做)。现在看下来,至少有两方面是非常贴地气的:1 使用矩阵计算加速普通的数据处理过程,例如pandas的计算是以列进行异步的,和矩阵计算的效率比低了一个量级。2 构成更快速的遗传算法。之前做过一个完整的物流配送优化项目,geatpy效率还可以,但是只是基于cpu计算的。(我的3060Ti都躺了快半年没用了,多可惜啊。)内容1 短期目标1 构建基于矩阵的数原创 2021-12-13 23:37:05 · 1157 阅读 · 0 评论 -
Python 矩阵之上8 模糊查找的计算问题
说明这里算是先记录一个问题吧。我有一个很长的词列表,大约20多万,属于308个主题,现在需要将大约2亿条数据进行标注。内容1 思路因为数据很大,一开始想到的是在数据库中进行正则匹配后将一个字段打标。问题:一开始的正则用一万个词拼起来,数据库报错,说正则太大了。然后按100个词进行切分,遍历一千万的表需要2分半钟。哪怕每次都不搜索已标记的数据,速度还是没有显著提升然后我尝试在内存里处理,速度快很多,每100个词10秒。勉勉强强也算可以。然后我将数据先进行词的切分,然后进行集合比较,每次不到3原创 2021-05-07 10:21:13 · 106 阅读 · 0 评论 -
Python 矩阵之上6 使用colab辅助计算
说明谷歌很大方的提供了在线的机器学习环境,给的显卡还是挺好的。我用来给我的机器学习任务加速,以下大致说下使用过程。内容1 切换GPU环境16G显存,em…应该是这款,另外不要想用来挖矿哦,会被封账号的。免费账号的GPU大约一天能用10个小时。2 安装包每次重启时环境都是新的,因此需要安装包。注意安装后要重启runtime3 挂载google drive# 第二步from google.colab import drivedrive.mount('/content/drive原创 2021-04-27 18:55:07 · 736 阅读 · 1 评论 -
Python 矩阵之上5 实体识别碎片任务的块状处理(计算)
说明计算机处理问题的时间大部分是浪费在IO和循环的间隙。假设其他逻辑没有问题,我们拿到的原始数据有可能是碎片化的。当进行大量调用时可能会非常耗时,本篇讨论解决一个场景下的问题:每次提交少量但是碎片化的句子,解析其中实体。内容...原创 2021-04-27 16:09:48 · 177 阅读 · 1 评论 -
Python 矩阵之上4 GPU的计算优势在哪?
说明我们都知道GPU的算力很强,但到底强在哪里?本篇仅从工程应用的一个例子做示例内容实验用3060Ti(原价2999抢到的,越想越划算)CPU稍微low一点,3400G。(4核8线程)1 长度为100的向量求欧式距离import numpy as np import torch as torfrom torch.functional import Fvector_len = 100a = np.random.rand(1,vector_len)b = np.random.rand(原创 2021-04-21 10:33:42 · 385 阅读 · 0 评论 -
Python 矩阵之上3 torch进行梯度拟合
说明接着上一篇,继续看这个梯度拟合的问题。内容首先是做数据import torch as tortor.manual_seed(100)x = tor.unsqueeze(tor.linspace(-1,1,100), dim=1)y = 3* (x**2) + 2 + 0.2 * tor.rand(x.size())---x.shapetorch.Size([100, 1])x.dtypetorch.float32x1 = x.double()torch.float64原创 2021-04-20 00:16:01 · 325 阅读 · 2 评论 -
Python 矩阵之上2 numpy进行梯度拟合
说明例子的来源是python深度学习的p41,我做了一些修改和注解。可视化部分完全抛弃了pyplot。内容1 原理严格的定义和原理我就不说了,简单来说梯度拟合就是顺着变化最快的方向进行挪动,从而找到最佳的解释参数。挪动一方面根据迭代的反馈(损失),一方面根据指定的步长(学习率, lr, learning rate)。2 代码2.1 构造数据使用方程加上一个随机扰动构成实验数据import numpy as np x = np.linspace(-1, 1, 100)y = 3 *(x原创 2021-04-19 00:31:29 · 369 阅读 · 0 评论 -
Python 矩阵之上1 初步想法
说明个人认为要搞算法必须建立在矩阵的计算之上,一方面是因为高效,另一方面是非常健壮(任何一门语言都有矩阵计算)。内容大概先罗列一下会做的事,用的具体工具是Numpy和Torch。1 numpy on cpu2 tensor on cpu3 tensor on gpu具体的实践:1 矩阵计算基础:实现普通高效计算(矩阵本身就是并行计算)2 求导(解析求解):雅克比矩阵,机器学习的拟合3 模拟求解:MCMC实现,Gibbs实现4 线性回归计算5 MLE计算6 逻辑回归计算7 计原创 2021-04-17 16:08:55 · 103 阅读 · 0 评论