Tensorflow之矩陣基礎

一、矩陣的定義以及矩陣之間的運算

1.矩陣的定義

#矩陣 其實就是一個元素爲列表的列表
'''
                                           3 3 3
[[1,2,3],[1,2,3],[1,2,3]] 這就是一個三維矩陣 3 3 3 其他的以此類推
                                           3 3 3
'''
import tensorflow as tf
#定義一個三維矩陣常量
data1 = tf.constant([
                     [1,2,3],
                     [4,5,6],
                     [7,8,9]
                            ])
print(data1.shape)#打印矩陣的維度
#矩陣的行和列都是自零開始的
with tf.Session() as sess:
    print(sess.run(data1))#打印整體
    print(sess.run(data1[0]))#打印第幾行矩陣的內容
    print(sess.run(data1[0,1]))#打印具體的值第幾行第幾列的數據
    '''還可以以切片的形式輸出'''
    print(sess.run(data1[:2,1]))#打印從第1行到第2行的第1列數據 即2 5
    print(sess.run(data1[:,:2]))#打印每一行的第一 二列數據即 1 2 4 5 7 8

輸出結果:

(3, 3)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[1 2 3]
2
[2 5]
[[1 2]
 [4 5]
 [7 8]]

2.矩陣的運算 這裏我們說的是加法和乘法

#矩陣運算
import tensorflow as tf
'''乘法規則 兩個矩陣s1 和 s2 s1爲m1*n1 s2爲m2*n2 則n1要等於m2 最終的矩陣爲m1*n2
   加法規則 兩個矩陣規格必須一樣都是m*n纔可進行運算
   s1= 1, 2  s2 = 5, 6 則s1*s2=  1*5 + 2*7, 1*6 + 2*8   s1+s2= 1+5 ,2+6
       3, 4       7, 8           3*5 + 4*7 ,3*6 + 4*8          3+7 ,4+8
'''
data1 = tf.constant([[1,2],[3,4]])
data2 = tf.constant([[5,6],[7,8]])
matMul = tf.matmul(data1,data2)
matAdd = tf.add(data1,data2)
with tf.Session() as sess:
    print(sess.run(matMul))
    print(sess.run(matAdd))

輸出結果:

[[19 22]
 [43 50]]
[[ 6  8]
 [10 12]]

二、一些特殊矩陣(全0、全1、隨機矩陣):

import tensorflow as tf
'''定義全0 全1 填充 隨機矩陣'''
mat0 = tf.constant([[0,0,0],[0,0,0]])#顯然當數據量很大時這樣不行
mat1 = tf.zeros([3,4])#定義全0矩陣
mat2 = tf.ones([3,4])#定義全1矩陣
mat3 = tf.fill([3,4],15)#以15來填充矩陣
mat4 = tf.random_uniform([3,4],1,5)#定義一個3行4列的以1 到5 隨機數填充的矩陣
with tf.Session() as sess:
    print(sess.run(mat0))
    print('全0矩陣',sess.run(mat1))
    print('全1矩陣',sess.run(mat2))
    print('自定義填充矩陣',sess.run(mat3))
    print('隨機矩陣',sess.run(mat4))

輸出結果:

[[0 0 0]
 [0 0 0]]
全0矩陣 [[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
全1矩陣 [[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]
自定義填充矩陣 [[15 15 15 15]
 [15 15 15 15]
 [15 15 15 15]]
隨機矩陣 [[4.9475193 4.405265  4.329329  4.6825447]
 [2.1526985 1.4548941 4.059652  1.4330664]
 [1.7129827 4.0956717 2.4845014 3.4982362]]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章