計算機視覺基礎系列(python與opencv的操作與運用/tensorflow的基礎介紹)(六)---tensorflow的矩陣基礎

矩陣基礎:placehold

首先來個示例代碼進行開始:

import tensorflow as tf
data1 = tf.placeholder(tf.float32)
data2 = tf.placeholder(tf.float32)
dataAdd = tf.add(data1, data2)
with tf.Session() as sess:
    print(sess.run(dataAdd, feed_dict={data1: 6, data2: 2}))

輸出的結果爲:

這裏,可以看出dataAdd裏面,有進行feed_dict操作,這裏的這個操作取決於dataAdd這裏的變量多少,這裏需要喂入兩個值,所以必須喂入兩個值,這裏的語法爲feed_dict={data1: 6, data2: 2};這個是固定語法,需要記住。

開始進行矩陣的運算,而這裏可以類比於數組的運算,可以看作是N行N列的數組,運用[ ]括起來的數組,下面這個例子,可以說明矩陣的一些知識,如下所示:

import tensorflow as tf

data1 = tf.constant([[6, 6]])
data2 = tf.constant([[2],
                     [2]])
data3 = tf.constant([[3, 3]])
data4 = tf.constant([[1, 2],
                     [3, 4],
                     [5, 6]])
print(data4.shape)   # 維度
with tf.Session() as sess:
    print(sess.run(data4))        # 打印整體內容
    print(sess.run(data4[0]))     # 打印某一行
    print(sess.run(data4[:, 0]))  # MN列
    print(sess.run(data4[0, 1]))  # 1 1

輸出結果爲:

矩陣的其他常見操作如下所示:代碼中有很多詳細的註釋如下:

import tensorflow as tf


mat0 = tf.constant([[0, 0, 0], [0, 0, 0]])
mat1 = tf.zeros([2, 3])           # 全0填充
mat2 = tf.ones([3, 2])            # 全1填充
mat3 = tf.fill([2, 3], 15)        # 矩陣爲兩行三列,以全是15填充
mat4 = tf.zeros_like(mat3)        # mat4的矩陣爲和mat3矩陣的形狀一樣的全0矩陣
mat5 = tf.linspace(0.0, 2.0, 11)      # 將0-2之間的數據等分爲10個,中間有九個數據,兩邊爲兩個數據,總共11個數據
mat6 = tf.random_uniform([2, 3], -1, 2)      # 產生一個兩行三列的矩陣,填充數是在-1到2之間的隨機數
with tf.Session() as sess:
    print(sess.run(mat0))
    print(sess.run(mat1))
    print(sess.run(mat2))
    print(sess.run(mat3))
    print(sess.run(mat4))
    print(sess.run(mat5))
    print(sess.run(mat6))

輸出的結果如下:

這些常見的tensorflow的矩陣操作可以記錄下來,都是簡單的操作,也比較簡單

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