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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

diskgeniusv4.4.0_入门TensorFlow2.0

發(fā)布時間:2024/9/27 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 diskgeniusv4.4.0_入门TensorFlow2.0 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天老師帶領(lǐng)我們?nèi)腴TTensorFlow2.0。至于tensorflow2.0是啥嘛,詳細的可以度娘一下。我簡述一下,就是一個end-to-end machine-Learning open source plantform(端對端的開源機器學(xué)習(xí)的平臺)。學(xué)習(xí)tensorflow需要引入tensor這個概念,tensor的漢語意思就是張量。張量是數(shù)學(xué)和力學(xué)的概念,是矢量的延伸,矢量是一階張量,至于張量具體是什么大家感興趣就度娘吧,我也不是專業(yè)的數(shù)學(xué)研究人員不很懂。tensorflow1.0引入了deferred execution(延遲執(zhí)行)機制,在構(gòu)建階段是不執(zhí)行計算操作的,因此稱為靜態(tài)圖,要想執(zhí)行計算操作,需要創(chuàng)建Session()對象才可以執(zhí)行計算操作。而在tensorflow2.0里引入了默認執(zhí)行eager execution機制,無需首先創(chuàng)建靜態(tài)圖,可以立刻執(zhí)行計算操作,并返回結(jié)果,不像1.0那樣需要創(chuàng)建Session對象。但是動態(tài)圖執(zhí)行效率不高,不利于后期調(diào)試。但是可以在程序調(diào)試階段使用動態(tài)圖,快速建立模型、調(diào)試程序;在部署階段,采用靜態(tài)圖機制,從而提高模型的性能和部署能力。tensorflow2.0清理和整合API,將tf.keras作為構(gòu)建和訓(xùn)練模型的標(biāo)準(zhǔn)API。

機器學(xué)習(xí)

安裝tensorflow這個老生常談了。

pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple

我們來簡單入門講講tensorflow。它可以運行在GPU、CPU、嵌入式等等平臺。你可以理解為是對numpy的二次封裝,對numpy進行加速運算。numpy只能在CPU里計算,而tensorFlow可以在CPU、GPU、TPU里計算。當(dāng)tensorflow與numpy一起在CPU里計算時,它們共享同一段內(nèi)存。

它的基本運算是張量,張量是由Tensor實現(xiàn),每個張量都是一個Tensor對象。可以使用tf.constant() 函數(shù)來創(chuàng)建張量。代碼如下:

import tensorflow as tfa = tf.constant([[1,2],[3,4]])print(a)
  • value:可以是數(shù)字或python列表或numpy數(shù)組
  • shpae:張量的形狀
  • dtype:元素數(shù)據(jù)類型
  • dtype:全稱是digital type漢語意思就是數(shù)字類型。這就創(chuàng)建了一個二維張量。

    運行結(jié)果就是:

    tf.Tensor([[1 2] [3 4]], shape=(2, 2), dtype=int32)

    張量還可以使用Numpy方法,代碼如下:

    a = tf.constant([[1,2],[3,4]])print(a.numpy)print(type(a))

    那么運行結(jié)果就是:

    >

    使用numpy方式生成張量時需要注意以下幾點:numpy方法創(chuàng)建張量 使用np創(chuàng)建浮點數(shù)組時默認64位,而tensorflow默認時float32,但是tensorflow接受時自動轉(zhuǎn)為64位浮點。一般建議使用np創(chuàng)建數(shù)組時建議為float32位足以使用。但是不建議低精度兼容高精度,因為會溢出。比如int32去兼容int64可能會存在溢出。

    Python

    它的內(nèi)置API非常多:

  • cast()改變張量的數(shù)據(jù)類型,tensor支持轉(zhuǎn)變的數(shù)據(jù)類型有:string int float bool。
  • tf.convert_to_tensor()函數(shù)其他數(shù)據(jù)類型轉(zhuǎn)換成tensor類型
  • tf.fill()在tensor張量里自動填充某個元素,第一個參數(shù)是shape,第二個是value,根據(jù)傳入的value自動判斷數(shù)據(jù)類型
  • tf.constant()也可以實現(xiàn)fill一樣的功能,只不過它的填充數(shù)字在前面,shape參數(shù)位于后面。
  • tf.random.normal(形狀,均值,標(biāo)準(zhǔn)差,數(shù)據(jù)類型=tf.float32)這個是正態(tài)分布函數(shù)。均值即為:mean。標(biāo)準(zhǔn)差是:stddev。當(dāng)mean=0,stddev=1為標(biāo)準(zhǔn)正態(tài)分布
  • tf.random.truncated_normal()創(chuàng)建隨機數(shù)張量。截斷正態(tài)分布,基本參數(shù)一致。截斷的依據(jù)是正態(tài)分布的2倍標(biāo)準(zhǔn)差。
  • tf.random.set_seed()函數(shù)。設(shè)置隨機數(shù)種子
  • tf.random.uniform(shape,minval,maxval,dtype)函數(shù)。功能是均勻分布張量,它是一個左閉右開的區(qū)間。tf.random.uniform(shape,minval,maxval,dtype='int32')
  • tf.random.shuffle()函數(shù)。功能是隨機打亂序列。
  • tf.range()創(chuàng)建整數(shù)序列,是左閉右開區(qū)間。
  • 還可以使用字典式訪問tensor對象屬性,依次取出ndim、shape、dtype屬性,代碼如下:

    atfc = tf.constant([[3,5],[7,0]])print('ndim:',atfc.ndim)print('shape:',atfc.shape)print('dtype:',atfc.dtype)

    總結(jié)一下:tensorflow所有的運算都是在張量之間運行的。而numpy只是作為input和output使用的。我只是列舉了常用的API,大家有興趣的可以嘗試嘗試。

    我始終保持開放的態(tài)度學(xué)習(xí)python,大佬可以批評指正。python之路漫漫,吾將上下而求索。

    總結(jié)

    以上是生活随笔為你收集整理的diskgeniusv4.4.0_入门TensorFlow2.0的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。