nd4j 向量_ND4J的基本操作
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一、ND4J的在内存中的存储结构
对于ND4J而言,所有的数据都存储在堆外内存,是一维的连续内存,INDArray 只是指向了这片连续的内存空间,把连续内存映射成张量,ND4J定义了两种排序规则:C order和F order,C order表示行优先,F order表示列优先。下图展示了ND4J的内存存储。
上图可以看出,不过张量是几维,对应的物理存储都是一维的连续内存空间,NDArray在指向这片连续的地址,这正是ND4J强大的地方,对于各种矩阵操作,例如:矩阵转置、矩阵加标量等等操作,都可以轻而易举的实现,而不用花力气去dup一个巨型数组,高性能也表现在这种优雅的设计方式上。
二、ND4J的基本操作
1、加法
INDArray add(INDArray other) :元素对应相加,返回的张量是拷贝出来的
INDArray addi(INDArray other) :元素对应相加,与上面不同的是,返回值不是拷贝出来的新数组,而是用计算结果替换原内存数据
INDArray add(Number n):每个元素加上一个标量
INDArray addi(Number n):每个元素加上一个标量,并覆盖原数组
2、减法
INDArray sub(Number n):每个元素减去一个标量
INDArray subi(Number n):每个元素减去标量,并覆盖原数组
INDArray sub(INDArray other):对应元素相减
INDArray subi(INDArray other):对应元素相减,并覆盖原数组
3、乘法
乘法分两种,对应元素相乘和矩阵乘法
INDArray mul(INDArray other):对应元素相乘
INDArray muli(INDArray other):对应元素相乘,并覆盖原数组
INDArray mmul(INDArray other):矩阵相乘
INDArray mmuli(INDArray other):矩阵相乘,并覆盖原数组
4、除法
INDArray div(INDArray other):对应元素相除
INDArray divi(INDArray other):对应元素相除并覆盖原数组
INDArray div(Number n):每个元素除以一个标量
INDArray divi(Number n):每个元素除以一个标量,并覆盖原数组
5、矩阵转置
INDArray transpose()
INDArray transposei()
总结一下:后面以i结尾的方法,表示in place,也就是会覆盖原内存空间的数据,和”传引用“一个意思
6、张量创建
Nd4j类中定义了很多静态方法,用于创建N维张量,用法例如: Nd4j.zeros(nRows, nColumns)
public static INDArray zeros(int rows, int columns) :创建一个全部元素为0的张量
public static INDArray ones(int rows, int columns) :创建一个全部元素为1的张量
public static INDArray hstack(INDArray... arrs):沿着水平方向接起多个矩阵,矩阵必须有相同的行
public static INDArray vstack(INDArray... arrs):沿着垂直方向接起多个矩阵,矩阵必须有相同的列
public static INDArray rand(int rows, int columns):随机对应形状的张量
public static INDArray rand(int[] shape):随机对应形状的张量
7、张量设置值
INDArray putScalar(int[] i, double value):对应位置设置标量
INDArray putScalar(int row, int col, double value):对应行列处设置标量
INDArray put(INDArrayIndex[] indices, INDArray element):对应维度处设置INDArray
8、其他操作
INDArray reshape(int... newShape):重新定义张量形状
这里只是列举了ND4J的一些常用操作,ND4J还定义了很多对应张量灵活的操作,例如求和、求平均、求最大值、求最小值、BooleanIndexing根据条件替换张量值、常用函数操作(sigmoid、tanh等等),要了解更多的详情,可以深入去看DL4J的example或者单元测试,去体验这个优秀的张量运算库。
nd4j 向量_ND4J的基本操作相关推荐
- nd4j 向量_DL4J中文文档/ND4J/元素操作
元素操作比矢量操作更直观,因为一个矩阵的元素清楚地映射到另一个矩阵上,为了获得结果,你只需要执行一个算术操作.(示例代码位于此处.) 对于向量矩阵运算,你必须首先建立直觉,并执行多个步骤.矩阵乘法有两 ...
- TensorFlow简介:向量对象
目录 介绍 背景 向量作为数字列表 使用NumPy库 使用TensorFlow 使用代码 总结 介绍 在机器学习中,向量可以用作表示数字数据的好方法.使用向量时,我们可以满足以下基本操作: 添加两个向 ...
- 数据结构与算法之-----向量(Vector)
[ 写在前面的话:本专栏的主要内容:数据结构与算法. 1.对于初识数据结构的小伙伴们,鉴于后面的数据结构的构建会使用到专栏前面的内容,包括具体数据结构的应用,所使用到的数据结构,也是自己 ...
- 线性代数(预备知识)
文章目录 线性代数 标量 向量 长度.维度.形状 矩阵 张量 张量算法的基本性质 降维 非降维求和 点积(Dot Production) 矩阵-向量积 矩阵-矩阵乘法 范数 范数和目标 小结 线性代数 ...
- matlab常用指令
一 matlab常用函数 1.特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 ...
- Matlab的一些术语
出处不详,感谢原作者. 一 matlab常用函数 1. 特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 ...
- 背出来matlab就无敌了
背出来,Matlab就无敌了 来源: 卞金鑫的日志 一 matlab常用函数 1. 特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 ep ...
- matlab的tfdata函数_MATLAB 主要函数指令表(按功能分类)
15句柄图形(Handle Graphics) 15.1图形窗的产生和控制(Figure window creation and control) clf 清除当前图 close 关闭图形 figur ...
- [转]MATLAB 主要函数指令表(按功能分类)
1 常用指令(General Purpose Commands) 1.1 通用信息查询(General information) demo 演示程序 help 在线帮助指令 helpbrowser ...
最新文章
- unity3d优化IOS
- 四章: CentOS6.5 配置连接Windows远程桌面、创建新用户、禁用root在本地或远程使用ssh登录
- [Java] grails 安装手记
- Jenkins全新的UI体验-Blue Ocean
- 使用PhantomJS实现网页截图服务
- react router官方文档_阿里开源可插拔 React 跨端框架 UmiJS
- 使用 .Net Memory Profiler 诊断 .NET 应用内存泄漏(方法与实践)
- Android String占位符功能
- XMind8update6 补丁
- 最小二乘法曲线拟合以及Matlab实现
- 房贷计算器移动端接口
- 色彩系列教程(3):实际运用
- 中信银行总行信息科技岗2019年校园招聘
- 【绝对详细!不好使你顺着网线敲我!】Django3.1在Ubuntu16.04上的部署
- c语言windows头文件包含,不包含windows.h和window.h内的任何头文件,弹框 “Hello, world!”...
- this.$emit()
- 数据结构--逻辑结构和存储结构区别和内容
- Internet安全协议 学习笔记
- java开发中JWT、JWE、JWS 、JWK 都是干啥的
- 企业展示方式有哪些?