MLlib Breeze和BLAS简介
Scala NLP是一套机器学习和数值计算的库,它主要是关于科学计算SC、机器学习ML和自然语言处理NLP的,它包括三个库:Breeze、Epic和Puck。
- Breeze是机器学习和数值计算库
- Epic是一种高性能统计分析器和结构化预测库
- Puck是一个快速GPU加速解析器
一、Breeze创建函数
- 全0矩阵:DenseMatrix.zero[Double](n,m)
- 全0向量:DenseVector.zero[Double](n)
- 全1向量:DenseVector.ones[Double](n)
- 按数值填充向量:DenseVector.fill(n){5.0}
- 生成随机向量:DenseVector.range(start,stop,step)
- 线性等分向量:DenseVector.linspace(start,stop,numvals)
- 单位矩阵:DenseMatrix.eye[Double](n)
- 对角矩阵:diag(DenseVector(1.0,2.0,3.0))
- 按照行创建矩阵:DenseMatrix((1.0,2.0),(3.0,4.0))
- 按照行创建向量:DenseVector(1,2,3,4)
- 向量转置:DenseVector(1,2,3,4).t
- 从函数创建向量:DenseVector.tabulate(3){i=>2*i}
- 从函数创建矩阵:DenseMatrix.tabulate(3,2){case(i,j)=>i+j}
- 从数组创建向量:new DenseVector(Array(1,2,3,4))
- 从数组创建矩阵:new DenseMatrix(2,3,Array(11,12,13,14))
- 0到1的随机向量:DenseVector.rand(4)
- 0到1的随机矩阵:DenseMatrix.rand(2,3)
二、Breeze元素访问和操作函数
- 指定位置:a(0,1)
- 向量子集:a(1 to 4)
- 按照指定步长取子集:a(5 to 0 by -1)
- 指定开始位置至结尾:a(1 to -1)
- 最后一个元素:a(-1)
- 矩阵指定列:a(::,2)
三、Breeze数值计算函数
- 调整矩阵形状:a.reshape(3,2)
- 矩阵转成向量:a.toDenseVector
- 复制下三角:lowTriangular(a)
- 复制上三角:upTriangular(a)
- 矩阵复制:a.copy
- 取对角线元素:diag(a)
- 子集赋数值:a(1 to 4):=5.0
- 子集赋向量:a(1 to 4):=DenseVector(1.0,2.0,3.0)
- 矩阵赋值:a(1 to 3,1 to 3):=5.0
- 矩阵列赋值:a(::,2):= 5.0
- 垂直连接矩阵:DenseMatrix.vertcat(a,b)
- 横向连接矩阵:DenseMatrix.horzcat(a,b)
- 向量连接:DenseVector.vertcat(a,b)
四、Breeze求和函数
- 元素加法:a+b
- 元素乘法:a:*b
- 元素除法:a:/b
- 元素比较:a:<b
- 元素相等:a:==b
- 元素追加:a:+=1.0
- 元素追乘:a:*=2.0
- 向量点积:a dot b
- 元素最大值:max(a)
- 元素最大值及位置:argmax(a)
五、Breeze布尔函数
- 元素与操作:a:&b
- 元素或操作:a:|b
- 元素非操作:!a
- 任意元素非零:any(a)
- 所有元素非零:all(a)
六、Breeze线性代数函数
- 线性求解:a\b
- 转置:a.t
- 求特征值:det(a)
- 求逆:inv(a)
- 求伪逆:pinv(a)
- 求范数:norm(a)
- 特征值和特征向量:eigSym(a)
- 特征值:eig(a)
- 特征向量:eig(a)._3
奇异值分解:svd(a) - 求矩阵的秩:rank(a)
- 矩阵长度:a.length
- 矩阵行数:a.rows
- 矩阵列数:a.cols
七、Breeze取整函数
- 四舍五入:round
- 最小整数:ceil
- 最大整数:floor
- 符号函数:signum
- 取正数:abs
八、Breeze常量函数
- 非数字:NaM
- 无穷大:Inf
- 圆周率:Constants.Pi
- 以e为底的指数函数:Constants.E
九、Breeze复数函数
- 实数:z.real
- 虚数:z.conjugate
十、Breeze三角函数
- sin、sinh、asin、asinh
- cos、cosh、acos、acosh
- tan、tanh、atan、atanh
- atan2
- sincx
- sincpi
十一、Breeze对数和指数函数
- log
- log1p
- sqrt、sbrt
- pow
BLAS(Basic Linear Algebra Subprograms)基础线性代数程序集是一个应用程序API接口标准,用以规范发布基础线性代数操作的数值库,按照功能分为三个级别:
- 向量-向量运算,比如点积、加法和数乘、绝对值的和
- 矩阵-向量运算,比如矩阵向量乘法
- 矩阵-矩阵运算,比如矩阵乘法
在Spark MLlib中,采用了BLAS线性代数运算符,BLAS的基本运算函数:
- 点积:dot
- 常数乘以向量加另一个向量:axpy
- 准备Givens旋转:rotg
- 实施旋转:rot
- 准备修改过的Givens旋转:rotmg
- 实施修改过的旋转:gotm
- 把x复制到y:copy
- 交换x和y:swap
- 2-范数:nrm2
- 绝对值求和:asum
- 常数乘以向量:scal
- 最大绝对值元素的索引:amax
本篇完~
MLlib Breeze和BLAS简介相关推荐
- RDD、矩阵基础——3. 矩阵、向量(Breeze、BLAS)
MLlib库底层的Vector(向量).Matrix(矩阵)运算使用了 Breeze库和BLAS库. Breeze库提供了相应计算的接口(Linalg). 但是在MLlib里面同时也提供了Vector ...
- BLAS之GEMM和GEMV
BLAS简介 BLAS全称是Basic Linear Algebra Subprograms是规定了一套低级的执行常见线性代数操作的规范.其实现经常针对特殊的机器进行优化,比较著名的·BLAS库有AC ...
- Winograd,GEMM算法综述(CNN中高效卷积实现)(上)
高效卷积实现算法和应用综述(上) 在下一篇文章会介绍Winograd算法的应用,在ICLR,CVPR,FPGA,FCCM等机器学习和FPGA领域的定会上的 ...
- PyTorch Python API详解大全(持续更新ing...)
诸神缄默不语-个人CSDN博文目录 具体内容以官方文档为准. 最早更新时间:2021.4.23 最近更新时间:2023.1.9 文章目录 0. 常用入参及函数统一解释 1. torch 1.1 Ten ...
- 基础篇 | 15 C++ 科学计算 - OpenBLAS的安装与使用
BLAS简介 类似于Anaconda里面的numpy,C++里面也有类似的矩阵运算库,称之为BLAS(Basic Linear Algebra Subprograms):基础线性代数子程序库. 支持的 ...
- 电商大数据项目-推荐系统实战之推荐算法(三)
电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析 https://blog.51cto.com/6989066/2325073 电商大数据项目-推荐系统实战之推荐算法 https:/ ...
- Spark入门实战系列--8.Spark MLlib(上)--机器学习及SparkMLlib简介
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.机器学习概念 1.1 机器学习的定义 在维基百科上对机器学习提出以下几种定义: l&qu ...
- 学习笔记Spark(九)—— Spark MLlib应用(1)—— 机器学习简介、Spark MLlib简介
一.机器学习简介 1.1.机器学习概念 机器学习就是让机器能像人一样有学习.理解.认识的能力. 机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能. ...
- Spark MLlib 入门--Breeze函数
Breeze函数介绍 (欢迎加qq1204738320学习交流) Spark MLlib底层的向量.矩阵运算使用了Breeze库,Breeze库提供了Vector/Matrix的实现以及 相应计算的接 ...
最新文章
- 注册时发短信如何防止别人恶意调用短信接口
- Context类(上下文)
- mysql按字段多条组合_MySQL按分组把字段值组合成一个结果
- 嵌入式linux tftp rpm,嵌入式linux的tftp配置
- java除号_Java的运算符
- 【C#】ADO .Net Entities Framework使用查询语句时遇到的错误
- OpenStack Keystone v3 API新特性
- 2017/4/12 afternoon
- qt 获取用户缩放_Qt-如何创建随窗口缩放并保持纵横比的图像?
- Android:登录保存回显用户信息或配置文件(sharedpreferences)
- 李子奈《计量经济学》第四版笔记和课后答案
- [任务2]安装ubuntu Linux
- 二建带记忆功能计算机,二建实务记忆技巧
- 【转载】高光谱图像处理与信息提取综述
- mysql rebuild index_批量rebuild索引
- c语言无符号整型越界,整型输出越界问题
- 智能控制导论 # 模糊控制 1 理论及实例
- ya的意思_请问ya是你的意思吗,为什么不写成yo – 手机爱问
- 《前端》html总结
- Vue在build编译时写在style中的路径问题
热门文章
- mysql timestamp 用法_mysql之TIMESTAMP(时间戳)用法详解
- jquery对象PHP转换,JavaScript_jQuery对象与DOM对象之间的相互转换,1、jQuery对象转换成DOM对象
jQue - phpStudy...
- continue语句
- Centos Discuz!论坛系统
- 机器人玛娜的扮演者_银河奥特曼S:玛娜的扮演者未婚先孕上推特热搜,机器人也能生孩子...
- datetime.datetime.now().strftime
- 快表的使用之访问内存有效时间计算
- 手把手教你如何将有线音箱改装成蓝牙音箱
- “好人综合症”是一种心理疾病
- wincc画面窗口 c语言,WINCC实现多画面窗口的问题(带附图 )-急