Tensor 陣列

      在〈Tensor 陣列〉中尚無留言

tensorflow 早期 1.0 版本,陣列需使用 tf.placeholder 方法宣告。但到了 2.0後,tf.placeholder就不見了,取而代之的方法如下

a = tf.zeros(shape=(維度))    : 建立數值都為 0 的常數
b = tf.ones(shape=(維度)) : 建立數值都為 1 的常數
c = tf.fill([2,3], 5) : 建立數值都為 5 的常數,維度為 2 列 3 行
d = tf.range(1, 9, 2) : 建立數值由 1~8(不含9),且每次隔2的一維陣列
e = tf.reshape(d, (2,2)) : 改成2列2行的陣列,(2,2) 亦可寫成 [2,2]
f = tf.random.normal((維度)) : 建立值符合常態分佈數列的常數
g = tf.random.uniform((維度)) : 建立值符合均勻分佈數列的常數

維度

TensorFlow的陣列維度,跟 numpy 其實都是一樣的,分別為純量(0維陣列),向量(1維陣列),矩陣(2維矩陣)等等各維的陣列。

純量

就是前面所介紹的 tf.Tensor常數,又稱為 0 維陣列,也就是說,只有一個數字。在底下的代碼中,tf.constant(1)跟tf.ones([], dtype=tf.int32)是一模一樣的。

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
a=tf.constant(1)
b=tf.ones([], dtype=tf.int32)
print(a)
print(b)
結果 :
tf.Tensor(1, shape=(), dtype=int32)
tf.Tensor(1, shape=(), dtype=int32)

一維一元素陣列

底下產生一維且只有一個元素的陣列。列印出來的結果,有”[]”。

同樣的 tf.ones(shape=(1)) 與 tf.ones((1)) 是一樣的,也可以是 tf.ones([1]) 

🔒 更多內容,請登入會員繼續閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *