keras初學

一些基本概念

符號圖能提供關鍵的自動優化和求導等功能。

張量可以看做是矩陣和向量的自然推廣,可以用張量來表示廣泛的數據類型

0階張量,即標量,是一個數,一階張量是向量,2階張量是矩陣,3階張量是立體,四階張量是

python中張量從0開始計數

矩陣[[1,2],[3,4]],第一維[1,3],第二維[2,4]

隨機梯度下降本質上還是針對單個樣本的優化提出來的,但是現在針對mini_bantch的優化也用SGD的概念

keras以python語言編寫,需要學好python 語言,python 教程推薦廖雪峯的python教程

快速開始序貫(sequential)模型

序貫模型


keras的模塊很清晰,在model.layers中找層,keras.optimizer 中加載對應的優化函數

網絡的主要搭建過程

1.創建數據,包括訓練和測試數據


實現隨機數的one-shot 操作

這個是一個整體

的參數。

2.model.add():搭建網絡

 Dense 第一個是神經元的節點,input _dim是輸入數據的維度,彩色圖像的維度爲3


 

sigmoid作爲輸出節點只有一個



softmax是有幾個分類就有幾個輸出節點

 

 

注意"accurary"的拼寫

(注:程序還是要自己親自上手編寫的,對於關鍵字參數有沒有下劃線,單數還是複數的印象纔會更深刻一些)


3.model.compile():創建各種指標的過程

sgd是函數返回的對象,所以不需要加引號。


超分辨是迴歸問題,需要用到一些迴歸問題方面的mse等評價指標,而多分類問題用到的是準確率這個指標

4.model.fit() :填充數據完成訓練的過程

5.model.evaluate():對結果進行評價

原始程序有誤,測試的時候是不需要batch_size關鍵字參數的

softmax計算多分類,是logistic二分類的推廣

第一步:與sigmoid函數相同的是,


第二步:


其中k表示L層的神經元個數,整個式子可以理解爲某個神經元的函數值佔該層神經元總函數值得比例,類似於概率。
這與sigmoid中不同,sigmoid中激活函數a=可以看出:


即Softmax的輸出的每個值都是>=0,並且其總和爲1,所以可以認爲其爲概率分佈,而sigmoid所有分類的輸出總和不爲1,不能認爲是概率分佈。

運行程序保存在本機sequential1.py和sequential.py中

LSTM (Long Short )長短時記憶網絡

時間遞歸神經網絡,適合於處理和預測時間序列中時間間隔和延遲相對較長的重要事件

常用人機交互中的語音識別,微軟還將其用於編寫程序代碼等,谷歌將其應用於生成圖像字幕。

LSTM VS RNN

LSTM區別於RNN的地方,主要就在於它在算法中加入了一個判斷信息有用與否的“處理器”,這個處理器作用的結構被稱爲cell。

Convolution 1D VS Convolution 2D

1.Convolution1D主要用於nlp,Convolution2D主要用於cv。實際上,Convolution1D也可以用於cv,Convolution2D也可以用於nlp,只是那個時候不是標準的卷積方式,而是經過一定變形的卷積。

參考文獻

https://blog.csdn.net/bixiwen_liu/article/details/52946867

https://baike.baidu.com/item/LSTM/17541102?fr=aladdin LSTM資料

https://www.cnblogs.com/ymjyqsx/p/6485924.html Conv1D VS Conv2D


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章