天天看點

TensorFlow的常量值張量和序列

常量值張量(Constant Value Tensors) TensorFlow提供了多種方式生成常量值的張量。與變量不同, 常量在運作前不再需要顯式初始化。 tf.constant 這一個最為常見。定義如下: tf.constant(value, dtype=None, shape=None, name='Const', verify_shape=False) value為常量值或者清單,dtype為類型,shape為張量形狀,name為名稱、verify_shape為用于驗證值的形狀,預設False。

tensor = tf.constant([1, 2, 3, 4, 5, 6, 7]) # tensor的輸出值是 [1 2 3 4 5 6 7]
tensor = tf.constant(-1.0, shape=[2, 3]) #tensor的輸出值是[[-1. -1. -1.],[-1. -1. -1.]]
           

tf.zeros tf.zeros_like tf.zeros(shape, dtype=tf.float32, name=None) 建立一個所有元素都設定為零的張量。shape為張量形狀,dtype為類型,name為名稱。

z = tf.zeros([3, 4], tf.int32)  # z的值是[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
           

tf.zeros_like(tensor, dtype=None, name=None, optimize=True) 給定一個張量(tensor),該操作傳回與給定的張量相同類型和形狀的張量,該傳回張量的所有元素會被設定為零。或者使用dtype指定傳回張量的新類型。 tensor為給定的張量,dtype為類型,name為名稱,optimize為優化項,如果為true,則嘗試靜态确定“張量”的形狀并将其編碼為常量。

tensor = tf.constant([[1, 2, 3], [4, 5, 6]])
a = tf.zeros_like(tensor)  # a的值是[[0, 0, 0], [0, 0, 0]]
           

tf.ones tf.ones_like 與tf.zeros()和tf.zeros_like()類似

tf.fill tf.fill(dims, value, name=None) tf.zeros()和tf.ones()是以0和1填充張量,而tf.fill()則可以指定要填充的值。 參數dims表示輸出張量的形狀。value為要填充的值。name為名稱。

f = tf.fill([2, 3], 9)   #f的值為[[9,9,9],[9,9,9]]
           

序列(Sequences) 與變量不同, 序列在運作前不再需要顯式初始化。 tf.linspace tf.linspace(start, stop, num, name=None) 産生一個等差數列一維向量,初始值是start、結束值是stop,個數是num。這個數列每次的增量是(stop - start)/(num-1)。

l = tf.linspace(10.0, 12.0, 3, name="linspace") # l的值是 [ 10.0, 11.0,  12.0], 每次增長(12-10)/(3-1) = 1
k = tf.linspace(10.0, 12.0, 5") # k的值是 [ 10.0, 10.5,  11.0, 11.5,  12.0], 每次增長(12-10)/(5-1) = 0.5
j = tf.linspace(10.0, 8.0, 3") # j的值是 [10.0, 9.0, 8.0], 值往小增長。
           

tf.range tf.range(limit, delta=1, dtype=None, name='range') tf.range(start, limit, delta=1, dtype=None, name='range') 産生一個等差數列的一維向量,初始值是start,增量是delta,結束值小于limit。start是初始值,如果不指定,預設是0;delta是增量,預設是1。limit是這個數列的最大值,但不包括在内,也就是說這個數列的最大值不能大于或者等于limit;dtype為類型;name為名稱。

start = 3
limit = 18
delta = 3
r = tf.range(start, limit, delta)  # r = [3, 6, 9, 12, 15],數列從3開始,每次向上增長3,但最大不超過18
limit = 5
r2 = tf.range(limit)  #r2 = [0, 1, 2, 3, 4],數列從0開始,增量是1,一直增長到4
           

參考文檔:

https://tensorflow.google.cn/api_guides/python/constant_op#Constant_Value_Tensors

繼續閱讀