DL4J实战之五:矩阵操作基本功

欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

本篇概览

作为《DL4J实战》系列的第五篇,在前面对深度学习有一定的了解后,本篇会暂停深度学习相关的操作,转为基本功练习:矩阵操作,即INDArray接口的基本用法

INDArray的类图如下,由于BaseNDArray是个抽象类,因此在实际使用中,咱们用的都是NDArray的实例:

在这里插入图片描述

之所以用一篇文章来学习矩阵操作,是因为后面的实战过程中处处都有它,处处离不开它,若不熟练就会寸步难行;

本篇涉及的API较多,因此先做好归类,后面的代码按照分类来写会清晰一些,一共分为五类:矩阵属性、创建操作、读操作、写操作、矩阵计算,接下来用思维导图列出每一类的常用API

矩阵属性:

在这里插入图片描述

创建操作:

在这里插入图片描述

读操作:

在这里插入图片描述

写操作:

在这里插入图片描述

矩阵计算:

在这里插入图片描述

源码下载

本篇实战中的完整源码可在GitHub下载到,地址和链接信息如下表所示(https://github.com/zq2599/blog_demos):

名称 链接 备注
项目主页   https://github.com/zq2599/blog_demos   该项目在GitHub上的主页  
git仓库地址(https)   https://github.com/zq2599/blog_demos.git   该项目源码的仓库地址,https协议  
git仓库地址(ssh)   git@github.com:zq2599/blog_demos.git   该项目源码的仓库地址,ssh协议  

这个git项目中有多个文件夹,《DL4J实战》系列的源码在dl4j-tutorials文件夹下,如下图红框所示:

在这里插入图片描述

dl4j-tutorials文件夹下有多个子工程,本次实战代码在ndarray-experience目录下,如下图红框:

在这里插入图片描述

创建工程

在父工程dl4j-tutorials下新建名为ndarray-experience的子工程,其pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 "> <parent> <artifactId>dlfj-tutorials</artifactId> <groupId>com.bolingcavalry</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>ndarray-experience</artifactId> <dependencies> <dependency> <groupId>org.nd4j</groupId> <!--注意要用nd4j-native-platform,否则容器启动时报错:no jnind4jcpu in java.library.path--> <artifactId>${nd4j.backend}</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> </dependencies> </project>

接下来的代码都写在ndarray-experience工程中

最基本的方法

先列出两个最基本的方法,后面学习时会频繁用到它们:

rand:秩,维数,例如2行3列的二维矩阵,rand方法返回值等于2

shape:矩阵每个维度的大小,如2行3列的二维矩阵,shape方法返回值等于[2, 3]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzwzdj.html