最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

TensorFlow基本的常量、變量和運算操作詳解

 更新時間:2020年02月03日 19:27:55   作者:忘淚  
今天小編就為大家分享一篇TensorFlow基本的常量、變量和運算操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

簡介

深度學(xué)習(xí)需要熟悉使用一個框架,本人選擇了TensorFlow,一邊學(xué)習(xí)一邊做項目,下面簡要介紹TensorFlow中的基本常量、變量和運算操作,參考斯坦福大學(xué)的cs20si和TensorFlow官網(wǎng)API。

常量

tf.constant()

tf.constant(value, dtype=None, shape=None, name='Const', verify_shape=False),value為值,dtype類型,shape為張量形狀,name名稱、verify_shape默認False,這些項可選。作用創(chuàng)建一個常量。

a = tf.constant(2, name="a") # print(a) = 2
b = tf.constant(2.0, dtype=tf.float32, shape=[2,2], name="b") # 2x2矩陣,值為2
c = tf.constant([[1, 2], [3, 4]], name="c") # 2x2矩陣,值1,2,3,4

tf.zeros()和tf.zeros_like()

tf.zeros(shape, dtype=tf.float32, name=None), shape為張量形狀,dtype類型,name名稱。創(chuàng)建一個值為0的常量。

a = tf.zeros(shape=[2, 3], dtype=tf.int32, name='a') # 2x3矩陣,值為0, a = [[0, 0, 0], [0, 0, 0]]

tf.zeros_like(input_tensor, dtype=None, name=None, optimize=True),input_tensor為張量,dtype類型,name名稱,optimize優(yōu)化。根據(jù)輸入張量創(chuàng)建一個值為0的張量,形狀和輸入張量相同。

input_tensor = tf.constant([[1,2], [3,4], [5,6])
a = tf.zeros_like(input_tensor) # a = [[0, 0], [0, 0], [0, 0]]

tf.ones()和tf.ones_like()

tf.ones(shape, dtype=tf.float32, name=None),與tf.zeros()類似。

tf.ones_like(input_tensor, dtype=None, name=None, optimize=True),與tf.zeros_like()類似。

tf.fill()

tf.fill(dims, value, name=None), dims為張量形狀,同上述shape,vlaue值,name名稱。作用是產(chǎn)生一個張量,用一個具體值充滿張量。

a = tf.fill([2,3], 8) # 2x3矩陣,值為8

tf.linspace()

tf.linspace(start, stop, num, name=None),start初始值,stop結(jié)束值,num數(shù)量,name名稱。作用是產(chǎn)生一個等差數(shù)列一維向量,個數(shù)是num,初始值start、結(jié)束值stop。

a = tf.linspace(10.0, 13.0, 4) # a = [10.0 11.0 12.0 13.0]

tf.range()

tf.range(start=0, limit=None, delta=1, dtype=None, name='range'),start初始值,limit限制,delta增量,dtype類型,name名稱。作用是產(chǎn)生一個等差數(shù)列的一維向量,初始值start,公差delta,結(jié)束值小于limit。

a = tf.range(start, limit, delta) # a = [3, 6, 9, 12, 15]
b = tf.range(5) # b = [0, 1, 2, 3, 4]

tf.random_normal()

tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None), shape張量形狀,mean均值,stddev標(biāo)準(zhǔn)差,dtype類型,seed隨機種子,name名稱。作用是產(chǎn)生一個正太分布分布,均值為mean,標(biāo)準(zhǔn)差為stddev。

tf.truncated_normal()

tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None,name=None),shape張量形狀,mean均值,stddev標(biāo)準(zhǔn)差,dtype類型,seed隨機種子,name名稱。作用是產(chǎn)生一個截斷的正太分布,形狀為shape,均值為mean,標(biāo)準(zhǔn)差為stddev。

tf.random_uniform()

tf.random_uniform(shape, minval=0, maxval=None, dtype=tf.float32, seed=None,name=None),shape張量形狀,minval最小值,maxval最大值,dtype類型,seed隨機種子,name名稱。作用是產(chǎn)生一個均勻分布,形狀為shape,最小值為minval,最大值為maxval。

tf.random_shuffle()

tf.random_shuffle(value, seed=None, name=None),value張量,seed隨機種子,name名稱。作用是將張量value里面的值隨機打亂。

a = tf.constant([[1,2],[3,4]],name='a')
b = tf.random_shuffle(a, name='b') # b = [[2,3], [1,4]]

tf.random_crop()

tf.random_crop(value, size, seed=None, name=None),value張量,size大小,seed隨機種子,name名稱。作用是將張量value隨機裁剪成size形狀大小的張量,value形狀大小>=size。

tf.multinomial()

tf.multinomial(logits, num_samples, seed=None, name=None), logits張量,num_samples采樣輸出,seed隨機種子,name名稱。作用是根據(jù)概率分布的大小,隨機返回對應(yīng)維度的下標(biāo)序號。

a = tf.constant([[1, 2, 3, 4, 1], [3, 2, 3, 4, 3]], name='a')
b = tf.multinomial(a, 1, name='b') # b = [0, 0]或者[0, 2]或者[4, 4] 

tf.random_gamma()

tf.random_gamma(shape, alpha, beta=None, dtype=tf.float32, seed=None, name=None)。作用是產(chǎn)生一個Gamma分布。

變量

tf.Variable()

tf.Variable(<initial-value>, name=<optional-name>),變量可以根據(jù)直接賦值,如a、b、c,也可以根據(jù)構(gòu)造函數(shù)賦值,如W、Z。

a = tf.Variable(2, name="scalar")
b = tf.Variable([2, 3], name="vector")
c = tf.Variable([[0, 1], [2, 3]], name="matrix")
W = tf.Variable(tf.zeros([784,10]), name="weights")
Z = tf.Variable(tf.random_normal([784, 10], mean=0, stddev=0.01), name="Z"

tf.Variable().initializer

1.全局變量初始化

init = tf.global_variables_initializer()
with tf.Session() as sess:
 sess.run(init)

2.指定變量初始化

W = tf.Variable(tf.truncated_normal([700, 10]))
with tf.Session() as sess:
 sess.run(W.initializer)
 print(W) # Tensor("Variable/read:0", shape=(700, 10), dtype=float32)

tf.Variable().eval()

返回變量值。

W = tf.Variable(tf.truncated_normal([700, 10]))
with tf.Session() as sess:
 sess.run(W.initializer) 
 print(W.eval())
>> [[-0.76781619 -0.67020458 1.15333688 ..., -0.98434633 -1.25692499 -0.90904623]
 [-0.36763489 -0.65037876 -1.52936983 ..., 0.19320194 -0.38379928
 0.44387451]
 [ 0.12510735 -0.82649058 0.4321366 ..., -0.3816964 0.70466036
 1.33211911]
 ...,
 [ 0.9203397 -0.99590844 0.76853162 ..., -0.74290705 0.37568584
 0.64072722]
 [-0.12753558 0.52571583 1.03265858 ..., 0.59978199 -0.91293705
 -0.02646019]
 [ 0.19076447 -0.62968266 -1.97970271 ..., -1.48389161 0.68170643

tf.Variable.assign()

直接調(diào)用assign()并不起作用,它是一個操作,需要sess.run()操作才能起效果。

W = tf.Variable(10)
W.assign(100)
with tf.Session() as sess:
 sess.run(W.initializer)
 print(W.eval()) # >> 10
W = tf.Variable(10)
assign_op = W.assign(100)
with tf.Session() as sess:
 # sess.run(W.initializer) # 當(dāng)變量有值的話,可以省略,不需要初始化
 sess.run(assign_op)
print W.eval() # >> 100

運算操作

運算操作圖

tf.multiply()和tf.matmul()

tf.multiply(x, y, name)作用是x, y逐項相乘。

tf.matmul(x, y, name)作用是x,y矩陣相乘。

a = tf.constant([3, 6])
b = tf.constant([2, 2])
c1 = tf.matmul(a, b) # 報錯
c2 = tf.matmul(tf.reshape(a, [1, 2]), tf.reshape(b, [2, 1]))# c2 = [[18]]
c3 = tf.multiply(a, b) # c3 = [6, 12]

加減就不細說了。

結(jié)束語

總結(jié)了一些常用的常量、變量和操作運算,供大家參考,尤其是對于tensorflow和python不太熟悉的選手有幫助,后續(xù)會補充更新,希望大家多多支持腳本之家。

相關(guān)文章

  • Celery批量異步調(diào)用任務(wù)一直等待結(jié)果問題

    Celery批量異步調(diào)用任務(wù)一直等待結(jié)果問題

    這篇文章主要介紹了Celery批量異步調(diào)用任務(wù)一直等待結(jié)果問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • python 裝飾器詳解與應(yīng)用范例

    python 裝飾器詳解與應(yīng)用范例

    裝飾器是 Python 的一個重要部分。簡單地說:他們是修改其他函數(shù)的功能的函數(shù)。他們有助于讓我們的代碼更簡短,也更Pythonic。大多數(shù)初學(xué)者不知道在哪兒使用它們,所以我將要分享下,哪些區(qū)域里裝飾器可以讓你的代碼更簡潔。 首先,讓我們討論下如何寫你自己的裝飾器
    2021-11-11
  • Python進階-函數(shù)默認參數(shù)(詳解)

    Python進階-函數(shù)默認參數(shù)(詳解)

    下面小編就為大家?guī)硪黄狿ython進階-函數(shù)默認參數(shù)(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Python完全新手教程

    Python完全新手教程

    Python完全新手教程...
    2007-02-02
  • pytorch實現(xiàn)手寫數(shù)字圖片識別

    pytorch實現(xiàn)手寫數(shù)字圖片識別

    這篇文章主要為大家詳細介紹了pytorch實現(xiàn)手寫數(shù)字圖片識別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 詳解如何管理多個Python版本和虛擬環(huán)境

    詳解如何管理多個Python版本和虛擬環(huán)境

    這篇文章主要介紹了詳解如何管理多個Python版本和虛擬環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Python?opencv進行圓形識別(圓檢測)實例代碼

    Python?opencv進行圓形識別(圓檢測)實例代碼

    最近工作的項目上需要檢測圖像中是否有圓形,下面這篇文章主要給大家介紹了關(guān)于Python?opencv進行圓形識別(圓檢測)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • python使用Pyinstaller如何打包整個項目

    python使用Pyinstaller如何打包整個項目

    這篇文章主要介紹了python使用Pyinstaller如何打包整個項目,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 解決Windows下python和pip命令無法使用的問題

    解決Windows下python和pip命令無法使用的問題

    這篇文章主要介紹了解決Windows下python和pip命令無法使用的問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python中利用原始套接字進行網(wǎng)絡(luò)編程的示例

    Python中利用原始套接字進行網(wǎng)絡(luò)編程的示例

    這篇文章主要介紹了Python中利用原始套接字進行網(wǎng)絡(luò)編程的示例,使用sock_raw接受和發(fā)送數(shù)據(jù)包可以避開網(wǎng)絡(luò)協(xié)議的諸多限制,需要的朋友可以參考下
    2015-05-05

最新評論

南靖县| 宜宾县| 衡阳市| 武宁县| 定边县| 菏泽市| 日土县| 东城区| 奇台县| 文水县| 房产| 苗栗县| 姜堰市| 南召县| 陆良县| 个旧市| 巴里| 明溪县| 桂林市| 香格里拉县| 贵德县| 建平县| 井陉县| 酒泉市| 岐山县| 双柏县| 松溪县| 惠水县| 汉源县| 利津县| 丹东市| 双江| 延津县| 温州市| 邵武市| 思南县| 上蔡县| 辽中县| 新源县| 彭水| 德格县|