分兩步構建乙個神經網路模型:
第一步,配置模型的層。人工神經網路基本的構建塊就是層,每個層包含乙個或多個ltu,也叫線性閾值單元。ltu是乙個人工神經單元,輸入和輸出都是數字,並且每個輸入的連線都有乙個對應的權重。ltu會加權求和所有的輸入,然後根據求值結果應用乙個訊號函式。下面使用keras.sequential類配置層:
model = keras.sequential(
[ keras.layers.flatten(input_shape=(28
,28))
, keras.layers.dense(
128, activation=
'relu'),
keras.layers.dense(10)
])
大部分深度學習模型都是由一系列的簡單的層串聯在一起組成的。這些層都有一些引數需要在模型的訓練過程中學習和優化。
我們來解釋上面的模型,該模型包含三層:
第一層是 keras.layers.flatten(平坦層),作用是把輸入的資料轉換成乙個一維陣列,flatten,就是使之平坦的意思。這層沒有引數需要學習,只是重構資料。這層接受的資料必須是28x28的二維陣列。
第二和第三是稠密層 keras.layers.dense。dense層是一種全連線層,和前邊的輸入、後邊的輸出全部連線。這種層往往用於分析輸入資料,提取輸入資料之間的聯絡。第乙個dense層有128個nodes(神經元 neurons),並且使用修正線性單元(relu)作為啟用函式;第二個dense層(也即最後一層)包含10個nodes,每個node將輸出乙個評估值,顯示輸入資料應該歸為那個類別。
第二步,編輯模型(compile model)
在模型開始訓練之前,我們要對模型做必要的設定,這就是compile model,設定往往包括如下內容:
1、新增損失函式loss。loss用來衡量訓練期間模型的精確度。我們要盡可能讓這個函式最小化,從而保證模型向著正確的方向發展。
2、新增優化器optimizer。optimizer定義了,根據輸入資料和loss,模型該怎樣改進和優化。
3、度量器metrics 。metrics 監視訓練和測試過程。往往用accuracy精度來描述。下面是配置**:
model.
compile
(optimizer=
'adam'
, loss=tf.keras.losses.sparsecategoricalcrossentropy(from_logits=
true),
metrics=
['accuracy'
])
至此,神經網路模型構建完畢。接下來就是訓練,**,等等。 給初學者的建議
一名初學者,首先要找一本好的入門書籍 平台裡有推薦 把程式結構 資料型別,陣列 函式和結構體 這幾個部分了解 了之後,就可以 寫 程式了。千萬不要把書看的太細緻,那樣的話會覺得程式設計太繁瑣,不要背參考書式的學習。就像乙個小孩要學說話,他需要模仿和試錯,不斷的矯正,最終會很好的表達,如果一開始讓他把...
給初學者的建議
在網上看到一篇很好的文章。對於一些初學者,我覺得它很有幫助。現在把它 過來。希望大家都能從中體會到什麼。如果作者看到,原諒我把它 過來,因為它很經典。2.初學者請不要看太多太多的書那會誤人子弟的,先找本系統的學,很多人用了很久都是只對部分功能熟悉而已,不系統還是不夠的。3.看幫助,不要因為很難而自己...
給ios初學者的建議
不管你是培訓的還是在上學的或者是自學的!你選擇了這條路就要認真的對待你所學的,別出來找工作什麼都不會!首先,第一點 把你的obj c語言基礎打好,在學習obj c之前最好學一下c c 除此之外最好各課都要設計了解些,xml,json,mysql,html,js!我碰到乙個連json和xml是什麼都不...