中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ND4J的基本操作總結

發布時間:2021-08-30 15:50:03 來源:億速云 閱讀:169 作者:chen 欄目:互聯網科技

這篇文章主要講解了“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的基本操作總結這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黎城县| 澄迈县| 吉木乃县| 泸水县| 蓝田县| 宾川县| 嘉黎县| 灌阳县| 灵宝市| 康保县| 岳阳县| 三穗县| 昌图县| 安义县| 黔江区| 衡东县| 万盛区| 来凤县| 渭源县| 贡嘎县| 惠州市| 长沙市| 湖口县| 鄂尔多斯市| 科技| 甘泉县| 岳普湖县| 澄迈县| 印江| 丰台区| 临西县| 望都县| 当阳市| 吕梁市| 尼木县| 喀什市| 阜城县| 绩溪县| 隆回县| 灵武市| 梅河口市|