日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TensorFlow2-基础操作

發布時間:2024/4/11 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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。

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解析。
  • 博客同步至我的個人博客網站,歡迎瀏覽其他文章。
  • 如有錯誤,歡迎指正。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的TensorFlow2-基础操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。