深度學習演算法實踐2 線性代數和Numpy的使用

2021-07-16 04:09:48 字數 2042 閱讀 1912

# 測試開發環境是否正確,定義二維陣列及常數與陣列相乘

import numpy

from theano import *

import theano.tensor as t

mtx = numpy.asarray([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])

scale = 2.0

newmtx = scale * mtx

print("二維陣列乘以常數: %f, %f" % (newmtx[0, 0], newmtx[2, 0]))

在引入了我們所需要的類之後,我們首先宣告了乙個矩陣,這裡是乙個3*2的二維陣列mtx,接著我們將乙個常數乘以矩陣mtx,得到新的矩陣newmtx,最後我們列印出第一行第一列和第三行第一列的值。

從上面這個簡單的例子,我們可以看到,theano和numpy的使用還是非常簡單的。

下面來看兩個矩陣的加法。其實從本質上來說,向量是一維陣列,矩陣在是二維陣列,張量是三維陣列,而我們所熟悉的常數,即標量,實際上是零維陣列。所以在討論矩陣加法之前,我們先來看兩個數的加法操作,然後將其推廣到矩陣乘法。

# 兩個數的加法

import numpy

import theano.tensor as t

from theano import function

x = t.dscalar("x")

y = t.dscalar("y")

z = x + y

addition = function([x, y], z)

x = 100

y = 200;

print("加法結果:%d" % addition(x, y))

在上面**中首先定義兩個標量x和y,然後定義z為x與y之和,接著定義函式addition,功能是求兩個標量之和。在完成上述定義之後,我們為標量x和y賦值,呼叫定義好的加法函式,列印出運算結果。

如果我們要做兩個矩陣的加法,只需對上面的**進行簡單的修改即可,**如下所示:

# 兩個矩陣的加法

import numpy

import theano.tensor as t

from theano import function

x = t.dmatrix("x")

y = t.dmatrix("y")

z = x + y

addition = function([x, y], z)

x = [[1.0, 2.0], [3.0, 4.0]]

y = [[10.0, 20.0], [30.0, 40.0]]

print(addition(x, y))

列印結果如下所示:

[[ 11.  22.]

[ 33. 44.]]

從上面的**可以看出,在theano和numpy下,線性代數的相關操作還是非常簡單的。

byte: bscalar, bvector, bmatrix, brow, bcol, btensor3, btensor4

16-bit integers: wscalar, wvector, wmatrix, wrow, wcol, wtensor3, wtensor4

32-bit integers: iscalar, ivector, imatrix, irow, icol, itensor3, itensor4

64-bit integers: lscalar, lvector, lmatrix, lrow, lcol, ltensor3, ltensor4

float: fscalar, fvector, fmatrix, frow, fcol, ftensor3, ftensor4

double: dscalar, dvector, dmatrix, drow, dcol, dtensor3, dtensor4

complex: cscalar, cvector, cmatrix, crow, ccol, ctensor3, ctensor4

筆記 深度學習 Chapter2 線性代數

在機器學習中,通常使用範數 no rmn or m 來衡量向量的大小.lp norm l pn or m的公式為 x p i xi p 1 p x p i xi p 1 p 直觀地看,範數是向量x x 到原點的距離 p 1 p 1時,稱為曼哈頓距離,p 2 p 2時,稱為歐幾里得距離。嚴格來講,範數...

深度學習數學基礎之線性代數

深度學習中的基本資料結構,基本上都是用向量或矩陣表示的,因此 深度學習的基礎學科之一 就是線性代數。深度學習中的線性代數知識主要包括以下部分 1 標量 向量 矩陣和張量 這4個變數很好理解 分別表示 乙個數 一維空間 一條線 二維 乙個平面 多於二維 立體或超立體等 2 矩陣的乘法和內積 這個在深度...

深度學習日記(二) 線性代數二

七 特徵分解 將矩陣分解為一組特徵向量和特徵值 從幾何上理解特徵值和特徵向量 特徵值 運動的速度 特徵向量 運動的方向 向量v在矩陣a的作用下,保持方向不變,進行比例為 lanmeta 的伸縮 特徵向量 eigenvector v 矩陣 a 特徵值 標量 滿足 特徵分解 以上鏈結為特徵分解的人話講解...