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])
