邂逅tensorflow

一個(gè)很酷的tensorflow教程:

·?TensorFlow令人困惑的部件(1)

·?更多關(guān)于圖的檢查

·?TensorFlow令人困惑的部件(2)

常見API

str.split(分隔符,分隔次數(shù))通過指定分隔符對(duì)字符串進(jìn)行切片,返回分割后的字符串列表

str.strip([指定的字符序列])方法用于移除字符串頭尾指定的字符(默認(rèn)為空格)或字符序列,返回生成的新字符串

str.join(sequence)用于將序列中的元素以指定的字符連接生成一個(gè)新的字符串

tf.random_uniform()?((6, 6), minval=low,maxval=high,dtype=tf.float32)))返回6*6的矩陣,產(chǎn)生于low和high之間,產(chǎn)生的值是均勻分布的

tf.tile(input,multiples<某一維度上復(fù)制的次數(shù)>,name=None)

tf.concat([tensor1, tensor2,...], axis)在指定軸上拼接張量

embedding_lookup()用法

tf.reduce_sum()

tf.matmul()用法

tf.reshape()可以用來增加維度

tf.truncated_normal(shape,mean均值,stddev標(biāo)準(zhǔn)差)此函數(shù)產(chǎn)生的隨機(jī)數(shù)與均值的差距不會(huì)超過兩倍的標(biāo)準(zhǔn)差

enumerate()函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在 for 循環(huán)當(dāng)中

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']

>>> list(enumerate(seasons))

????????[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

>>> list(enumerate(seasons, start=1))? ? ? # 下標(biāo)從 1 開始

????????[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

set()?函數(shù)創(chuàng)建一個(gè)無序不重復(fù)元素集,可進(jìn)行關(guān)系測(cè)試,刪除重復(fù)數(shù)據(jù)。

?>>>x = set('runoob')?

?>>> y = set('google')? ?

?>>> x, y?

(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) # 重復(fù)的被刪除??


基本概念

特殊張量:

常量是始終會(huì)返回同一張量值的指令。x = tf.constant([5.2])

變量是會(huì)返回分配給它的任何張量的指令。y = tf.Variable([5]),?創(chuàng)建變量時(shí),您可以明確設(shè)置一個(gè)初始值,也可以使用初始化程序(例如分布)。?要更改變量的值,請(qǐng)使用?assign?操作,?向變量賦予新值時(shí),其形狀必須和之前的形狀一致。

共享變量(變量作用域)

TensorFlow 編程本質(zhì)上是一個(gè)兩步流程:

(1)將常量、變量和指令整合到一個(gè)圖中。

(2)在一個(gè)會(huì)話中評(píng)估這些常量、變量和指令。

形狀用于描述張量維度的大小和數(shù)量。張量的形狀表示為?list,其中第?i?個(gè)元素表示維度?i?的大小。列表的長度表示張量的階(即維數(shù))。matrix0 = tf.zeros([2, 2]),形狀(shape)也可以用元組表示。(None表示可變長度)

0階張量(常數(shù))的形狀= []

s_1_flex = [None]??

s_2_flex = (None, 3)

s_3_flex = [2, None, None]?

以下代碼展示了如何創(chuàng)建大小與給定矩陣中的列數(shù)相同的零矢量:

zeros = tf.zeros(my_matrix.shape[1])

在數(shù)學(xué)中,您只能對(duì)形狀相同的張量執(zhí)行元素級(jí)運(yùn)算(例如,相加等于)。不過,在 TensorFlow 中,您可以對(duì)張量執(zhí)行傳統(tǒng)意義上不可行的運(yùn)算。利用廣播,元素級(jí)運(yùn)算中的較小數(shù)組會(huì)增大到與較大數(shù)組具有相同的形狀。

我們使用一種稱為“特征列”的結(jié)構(gòu)來表示特征的數(shù)據(jù)類型。特征列僅存儲(chǔ)對(duì)特征數(shù)據(jù)的描述;不包含特征數(shù)據(jù)本身。

batch_size:此整數(shù)指定每個(gè)批次的大小。請(qǐng)注意,如果樣本總數(shù)不能被批次大小整除,則最后一個(gè)批次可能更小。

pandas

DataFrame(數(shù)據(jù)框架),您可以將它想象成一個(gè)關(guān)系型數(shù)據(jù)表格,其中包含多個(gè)行和已命名的列。

Series,它是單一列。DataFrame?中包含一個(gè)或多個(gè)?Series,每個(gè)?Series?均有一個(gè)名稱。



高階API:??keras的使用

低階API:張量、變量、圖表、會(huì)話的使用(適當(dāng)?shù)氖褂玫碗AAPI,實(shí)驗(yàn)和調(diào)試都會(huì)更直接,且能夠理解其內(nèi)部工作原理)

您可以將 TensorFlow Core 程序看作由兩個(gè)互相獨(dú)立的部分組成:

1.構(gòu)建計(jì)算圖 (tf.Graph)

2.運(yùn)行計(jì)算圖(使用?tf.Session

圖:

計(jì)算圖是排列成一個(gè)圖的一系列 TensorFlow 指令。圖由兩種類型的對(duì)象組成 :

1、操作(簡(jiǎn)稱“op”):圖的節(jié)點(diǎn)。操作描述了消耗和生成張量的計(jì)算

2、張量:圖的邊。它們代表將流經(jīng)圖的值。大多數(shù) TensorFlow 函數(shù)會(huì)返回?tf.Tensors

會(huì)話:

會(huì)話會(huì)封裝 TensorFlow 運(yùn)行時(shí)的狀態(tài),并運(yùn)行 TensorFlow 操作。如果說?tf.Graph?像一個(gè)?.py?文件,那么?tf.Session?就像一個(gè)?python?可執(zhí)行對(duì)象。

當(dāng)您使用?Session.run?請(qǐng)求輸出節(jié)點(diǎn)時(shí),TensorFlow 會(huì)回溯整個(gè)圖,并流經(jīng)提供了所請(qǐng)求的輸出節(jié)點(diǎn)對(duì)應(yīng)的輸入值的所有節(jié)點(diǎn)。

您可以將多個(gè)張量傳遞給?tf.Session.run。run?方法以透明方式處理元組或字典的任何組合。它返回的結(jié)果擁有相同的布局結(jié)構(gòu)。??



tensorflow基礎(chǔ)概念解釋

創(chuàng)建會(huì)話對(duì)象后,可以使用 sess.run (node) 返回節(jié)點(diǎn)的值,并且 Tensorflow 將執(zhí)行確定該值所需的所有計(jì)算。

我們還可以傳遞一個(gè)列表,sess.run ([node1,node2,...]),并讓它返回多個(gè)輸出

一般來說,sess.run () 調(diào)用往往是最大的 TensorFlow 瓶頸之一,所以調(diào)用它的次數(shù)越少越好。可以的話在一個(gè) sess.run () 調(diào)用中返回多個(gè)項(xiàng)目,而不是進(jìn)行多個(gè)調(diào)用。

Tensorflow 僅通過必需的節(jié)點(diǎn)自動(dòng)路由計(jì)算這一事實(shí)是它的巨大優(yōu)勢(shì)。如果計(jì)算圖非常大并且有許多不必要的節(jié)點(diǎn),它就能節(jié)約大量運(yùn)行時(shí)間。



在深度學(xué)習(xí)中,典型的“內(nèi)循環(huán)”訓(xùn)練如下:

·獲取輸入和 true_output

·根據(jù)輸入和參數(shù)計(jì)算出一個(gè)“猜測(cè)”

·根據(jù)猜測(cè)和 true_output 之間的差異計(jì)算出一個(gè)“損失”

·根據(jù)損失的梯度更新參數(shù)



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容