TensorFlow2-基础操作
生活随笔
收集整理的這篇文章主要介紹了
TensorFlow2-基础操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TensorFlow2基礎操作
文章目錄
- TensorFlow2基礎操作
- 數據類型
- Tensor創建
- Tensor索引和切片
- Tensor維度變換
- Broadcast
- 數學運算
- 補充說明
數據類型
- 說明
- TensorFlow其實并沒有那么神秘,為了適應自動求導和GPU運算,它應運而生。為了契合numpy的核心數據類型ndarray,其最核心的數據類型為Tensor,中文指張量(一般,數學上分標量,一維向量,二維矩陣,二維以上稱為張量,當然在TF2中上述各種都是使用Tensor類型)。而Variable是對Tensor的一個封裝,使其Tensor具有自動求導的能力(即可以被優化,這個類型是專為神經網絡參數設定的)。
- Tensor
- 數值類型
- int, float, double
- bool
- string
- 演示
- Variable
- 創建及使用類似Tensor,只是多了trainable等屬性。
- 數值類型
Tensor創建
- from numpy or list
- TF的Tensor可以直接從numpy的矩陣或者符合矩陣規則的Pythonlist中生成。
- 演示
- 方法創建
- tf.zeros
- 接受參數為shape,創建全0的tensor。
- tf.zeros_like
- 接受參數為tensor,創建根據該tensor的shape的全0的tensor。
- tf.ones
- 類似tf.zeros
- tf.ones_like
- 類似tf.zeros_like
- tf.random.normal
- 接受參數為shape,mean,stddev,創建指定shape的tensor,數據從指定均值和標準差的正態分布中采樣。
- tf.random.truncated_normal
- 接受參數同上,創建指定shape的tensor,數據從指定均值和標準差的正態分布截斷后采樣。
- tf.random.uniform
- 接受參數為shape,minval,maxval,創建指定shape的tensor,數據從指定最小值到最大值之間的均勻分布中生成。
- tf.range
- 接受參數為limit,創建一維的start到limit的tensor。
- tf.constant
- 類似tf.convert_to_tensor。
- tf.zeros
Tensor索引和切片
- C語言風格
- 通過多層下標進行索引。
- numpy風格
- 通過多層下標索引,寫在一個中括號內,使用逗號分隔。
- Python風格
- array[start:end:step, start:end:step, ...]可以缺省,start和end缺省時取從開端到結尾。同時,默認從第一個維度開始取,幾個冒號則從開始取幾個維度,后面的剩余維度全取。同樣,上述省略號表示后面的維度都取,等同于不寫的含義(但是,當省略號出現在中間則不能不寫)。
- selective index
- tf.gather(a, axis, indices)
- axis表示指定的收集維度,indices表示該維度上收集那些序號。
- tf.gather_nd(a, indices)
- indices可以是多維的,按照指定維度索引。
- tf.boolean_mask(a, mask, axis)
- 按照布爾型的mask,對為True的對應取索引(支持多層維度)。
- 演示。
Tensor維度變換
- tf.reshape(a, shape)
- 將Tensor調整為新的合法shape,不會改變數據,只是改變數據的理解方式。(reshape中維度指定為-1表示自動推導,類似numpy)
- tf.transpose(a, perm)
- 將原來Tensor按照perm指定的維度順序進行轉置。
- tf.expand_dims(a, axis)
- 在指定維度的前面(axis為正數)或者后面(axis為負數)增加一個新的空維度。
- tf.squeeze(a, axis)
- 消去指定的可以去掉的維度(該維度值為1)。
Broadcast
- 不同維度的Tensor進行相關運算時需要維度進行統一,broadcast一般是先增加空維度再沿著這個維度復制原數據(事實上存儲上沒有復制)。在TensorFlow中,broadcast運算時是自動進行的,當然,也可以調用tf.broadcast_to(a, target_shape)進行顯式操作。
- Broadcast使得編碼相當簡潔且節省內存空間。但是,當expand這一步無法進行時,broadcast就會失敗,從而報錯。
數學運算
- 元素運算
- 基本的加減乘除,即矩陣對應位置的元素進行這四種數學運算。
- 矩陣運算
- 矩陣之間的運算,符合矩陣的運算規則,主要是矩陣乘法。
- 維度運算
- 某一個維度上的操作,reduce_mean、reduce_max等方法。
補充說明
- 本文主要講解了TensorFlow2提供的一些基礎操作的API解析。
- 博客同步至我的個人博客網站,歡迎瀏覽其他文章。
- 如有錯誤,歡迎指正。
總結
以上是生活随笔為你收集整理的TensorFlow2-基础操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据科学竞赛-数据挖掘赛流程
- 下一篇: 数据科学竞赛-房价预测