tensorflow之三深入MNIST

2021-10-06 16:24:03 字數 3380 閱讀 1021

在這裡插入**片
mnist是乙個什麼級的類。它以什麼的形式儲存著訓練、校驗和測試資料集。同時提供了乙個函式,用於在迭代中獲得什麼,後面我們將會用到。

tensorflow依賴於乙個什麼來進行計算。與後端的這個連線叫做什麼?

使用tensorflow程式的流程是先建立什麼,然後在**中啟動它。

這裡,我們使用更加方便的什麼類。通過它,你可以更加靈活地構建你的**。

它能讓你在執行圖的時候,插入一些什麼,這些什麼是由某些什麼構成的。

在這裡插入**片
為了在python中進行高效的數值計算,我們通常會使用什麼庫

tensorflow是**完成其主要工作,

先讓我們描述乙個什麼,然後完全將其執行在python外部。

python**的目的是用來構建什麼?以及安排什麼?

我們通過為輸入影象和目標輸出類別建立節點,來開始構建計算圖。

在這裡插入**片
這裡的x和y並不是什麼,相反,他們都只是乙個什麼?

可以在tensorflow執行某一計算時根據該什麼輸入什麼?

輸入x是乙個幾維的什麼?

分配給它的shape是什麼?

其中什麼是一張展平的mnist的維度?

none表示其值怎樣,在這裡作為第乙個維度值,用以指代什麼的大小,意即x的怎樣。

輸出類別值y_也是乙個幾維張量,其中每一行為乙個幾維的什麼向量,用於代表對應某一mnist的類別

雖然placeholder的shape引數是可選的,但有了它,tensorflow能夠幹什麼?

我們現在為模型定義權重什麼和偏置什麼

可以將它們當作額外的輸入量,但是tensorflow有乙個更好的處理方式:什麼

乙個變數代表什麼,能夠在計算過程中使用,甚至進行修改。

在機器學習的應用過程中,模型引數一般用什麼來表示。

在這裡插入**片
我們在呼叫什麼的時候傳入初始值

在這個例子裡,我們把w和b都初始化為什麼?

w是乙個幾x幾的矩陣(因為我們有幾個特徵和幾個輸出值

b是乙個幾維的向量(因為我們有幾個分類

變數需要通過什麼後,才能在session中使用。

這一初始化步驟為,為初始值指定什麼(本例當中是幾),並將其分配給誰, 是否可以一次性為所有變數完成此操作?

在這裡插入**片
現在我們可以實現我們的回歸模型了。我們把什麼和什麼相乘,加上什麼,然後計算每個分類的什麼。

在這裡插入**片
我們的損失函式是什麼?

什麼把什麼裡的每張的交叉熵值都加起來了。我們計算的交叉熵是指**的。

因為tensorflow知道整個計算圖,它可以使用什麼法找到對於各個變數的損失的梯度值。

我們用最速下降法讓交叉熵下降,步長為0.01.

在這裡插入**片
上邊這一行**實際上是用來往計算圖上新增乙個新操作,其中包括什麼?

返回的train_step操作物件,在執行時會使用什麼來更新引數

因此,整個模型的訓練可以通過反覆地執行什麼來完成

每一步迭代,我們都會載入幾個訓練樣本。

for i in range

(1000):

batch = mnist.train.

next_batch(50

) train_step.

run(feed_dict=

{x: batch[

執行一次什麼,並通過什麼將x 和 y_張量佔位符用訓練訓練資料替代。

在計算圖中,你可以用什麼來替代任何張量,並不僅限於替換佔位符

tf.argmax 是乙個非常有用的函式,它能給出什麼?

由於標籤向量是由什麼組成,因此最大值什麼所在的索引位置就是類別標籤,

什麼返回的是模型對於任一輸入x**到的標籤值

什麼代表正確的標籤

我們可以用 什麼來檢測我們的**是否真實標籤匹配(索引位置一樣表示匹配)。

為了計算我們分類的準確率,我們將什麼值轉換為什麼數來代表對、錯,然後取什麼值

在這裡插入**片
為了建立這個模型,我們需要建立大量的什麼?

這個模型中的權重在初始化時應該加入少量的什麼?

由於我們使用的是什麼神經元,因此比較好的做法是用乙個較小什麼數來初始化偏置項,以避免什麼?

我們定義兩個函式用於初始化。

在這裡插入**片
我們的卷積使用幾步長(stride size),幾邊距(padding size)的模板,保證輸出和輸入是同乙個大小。

我們的池化用簡單傳統的多少大小的模板做max pooling

在這裡插入**片
現在我們可以開始實現第一層了。它由乙個卷積接乙個什麼完成

卷積在每個幾x幾的patch中算出幾個特徵。

卷積的權重張量形狀是[什麼]

前兩個維度是什麼,接著是什麼,最後是什麼。

對於每乙個輸出通道都有乙個對應的什麼?

為了用這一層,我們把x變成乙個幾維向量,其第2、第3維對應的什麼、什麼,最後一維代表的什麼(因為是灰度圖所以這裡的通道數為幾,如果是rgb彩色圖,則為幾)。

我們把什麼和什麼進行卷積,加上什麼,然後應用什麼函式,最後進行什麼。

為了構建乙個更深的網路,我們會把幾個類似的層堆疊起來。第二層中,每個5x5的patch會得到64個特徵。

在這裡插入**片
現在,尺寸減小到7x7,我們加入乙個有1024個神經元的全連線層,用於處理整個。我們把池化層輸出的張量reshape成一些向量,乘上權重矩陣,加上偏置,然後對其使用relu。

在這裡插入**片
為了減少過擬合,我們在輸出層之前加入什麼?

我們用乙個什麼來代表乙個神經元的輸出在dropout中保持不變的概率。

這樣我們可以在訓練過程中怎樣dropout,在測試過程中怎樣dropout

tensorflow的tf.nn.dropout操作除了可以遮蔽什麼,還會自動處理什麼?

用dropout的時候是否可以不用考慮scale?

在這裡插入**片
最後,我們新增乙個softmax層,就像前面的單層softmax regression一樣

在這裡插入**片
為了進行訓練和評估,我們使用與之前簡單的單層什麼模型幾乎相同的一套**

只是我們會用更加複雜的什麼優化器來做梯度最速下降

在什麼中加入額外的什麼引數來控制dropout比例

在這裡插入**片

js 深入原型之三繼承

1 通過改變原型指向來實現繼承 缺陷 實現繼承的同時直接初始化了屬性,繼承過來的屬性的都是一樣的 解決 繼承的時候不用改變原型的指向,直接使用借用建構函式 call方法 function person name,age,weight person.prototype.sayhi function 借...

tensorflow教程學習三深入MNIST

載入資料 from tensorflow.examples.tutorials.mnist import input data mnist input data.read data sets mnist data one hot true 我們使用interactivesession類可以更加靈活地...

TensorFlow入門 MNIST深入

1 load mnist data 2import tensorflow.examples.tutorials.mnist.input data as input data 3 mnist input data.read data sets mnist data one hot true 45 st...