乘法的具體步驟為:a*b=c。設新生成的矩陣的元素c(i,j)表示c矩陣第i行第j列元素,他是由a矩陣第i行的行向量和b矩陣第j列的列向量做對應元素相乘後累加得到的值(向量內積)。以下面為例:
python的矩陣乘法有兩種,一種是對應位置的數直接相乘,表示方法是a*b。例如:
此外這裡要插播一下python的廣播機制:在python中,矩陣間加法的直接數乘理論上要求兩個參與運算的矩陣維度相同,但是由於python存在廣播機制,我們可以只讓他們的某一維相同(或者成比例),比如a矩陣是3*2的,而b矩陣是1*2的,python可以將b矩陣通過行複製的方式將b矩陣變成3*2的矩陣後,進行運算。(如果下列**看不懂可以先看下面的語法部分)
執行結果如下:
而最低要求是兩個維度成比例,否則就會出現下面的情況:
執行結果如下:
大體意思是說,由於我們給的矩陣,兩個維度不滿足比例,python無法通過廣播機制(將其中乙個矩陣進行橫向縱向拷貝擴充變成和另乙個矩陣同維度)
python中的第二種矩陣乘法就是數學上的矩陣乘法:
在tensorflow中,已經將矩陣乘法封裝為tf.matmul(矩陣a,矩陣b)。
執行結果如下:
首先第一步,我們需要將tensorflow這個包匯入,語法為import tensorflow as tf,之後我們可以用tf代替tensorflow。
tensorflow大體上將資料分為變數和常量兩種,tensorflow稱他們為tensor[張量]。
1)定義張量
2)定義張量間的運算
3)在會話中執行運算
顧名思義,是在執行過程中值不會改變的量。宣告的方法為tf.constant(矩陣資料,資料型別[可選,若不指定則由直譯器自行決定,型別不統一的矩陣無法進行運算])。
注意,python中會存在一些非常奇怪的秩為1的矩陣,參與運算的時候會產生一些難以debug的錯誤,因此我們切記用兩層中括號來表明我們的資料是個二維矩陣。例如,m1=tf.constant([[3,3]]),這樣宣告了乙個1行2列的常量矩陣。再如,m2=tf.constant([[2],[3]]),宣告了乙個2行1列的資料。內層的中括號表示某一層,層與層之間用,隔開。
我們輸出m1看一下發現結果為:tensor("const:0", shape=(1, 2), dtype=int32)。原因是,當前還沒有將他們放入計算圖進行計算,因此他們還是張量,並沒有實際的值。
變數也就是在執行過程中可以改變的值。宣告方法為tf.variable(矩陣資料)。
需要注意的是,tensorflow規定了對於變數的使用一定要先將其初始化。
執行結果為:
上述採用的是全域性初始化方法,也就是一次性將所有的變數都初始化,目測是有單個變數初始化的,但是確實沒有必要,強推全域性初始化方法。另外,我們也可以先獲得初始化方法,再執行。
但,還是覺得多次一舉2333。
QML入門教程 2
qml入門教程 2 qml元件 cell.qml的內容import qt 4.7 item mousearea 挨個看 item 這一部分沒有特別好說的,在item中內嵌了乙個id為rectangle白邊框的矩形區域,大小佔滿整個item。mousearea mousearea則為item增加了一塊...
QML入門教程 2
import qt 4.7 item mousearea 挨個看 item這一部分沒有特別好說的,在item中內嵌了乙個id為rectangle白邊框的矩形區域,大小佔滿整個item。mouseareamousearea則為item增加了一塊滑鼠響應區,看它的anchors知道,在整個item區域內...
Python入門教程(2)
python 英語發音 pa n 是一種物件導向 解釋型計算機程式語言,由guido van rossum於1989年底發明,第乙個公開發行版發行於1991年,python 源 同樣遵循 gpl gnu general public license 協議。python語法簡潔而清晰,具有豐富和強大的...