矩陣基礎: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的矩陣操作可以記錄下來,都是簡單的操作,也比較簡單