這篇文章會總結幾個keras的基本概念,了解了這幾個基本概念,keras建模將會快速上手。
話不多說,直奔主題!
張量(tensor),可以理解為keras裡的一種資料型別,相當於c語言裡得陣列。你在儲存的時候總需要了解資料的長度、大小還有維度各種各樣的資訊,而這個tensor就是用來幹這個的。舉幾個例子,如0階張量,也就是標量,指的是乙個數;1階張量指的是向量,幾個數字有序排列就是乙個一階張量;2階張量指的是矩陣,把幾個一階張量有序排起來也就是乙個2階張量,以此類推…而張量的階數也可稱為維度或者軸(axis),這個其實很好理解,想想資料中的特徵,一般來說有幾類特徵我們就常說這個樣本是幾維的,因為每類特徵都相當於座標系裡的乙個軸。
資料格式(dataformat):keras在構建模型時需要設定輸入資料的格式,也就是這個所謂的dataformat。在這方面,不同的深度學習庫產生了分歧,theano、caffe為代表的採用"通道維靠前",而以tensorflow為代表的採用"通道維靠後"。keras可自行設定採用哪種方式,可在**中通過k.image_data_format()函式檢視。如:
model.add(convolution2d(batch_size,input_shape=(none, 1, 28, 28)) #分別代表多少資料、通道數、寬、高
可以看出,可以使用none表示任意值,這也為處理不同維的資料提供了方便。
另外(784,)和(784)是一致的,,都代表784個元素的一維張量
呼叫分類:keras將模型呼叫分為兩類,一種是sequential即順序模型,另一種是函式式api模型。在官方中文文件中,keras將sequential看作是api模型的一種特殊情況,而api可以處理多輸入多輸出情況,更具有一般性。
批資料(batch):指的是梯度下降時一次用來更新引數使用的資料量。一般來說當一次性將所有資料都進行訓練時間太長,但每次使用乙個資料來更新引數會造成收斂效能不好,可能在最優點抖動甚至造成動盪,因此採用批資料進行梯度下降成了一種折中的思路。在使用批資料時,批資料越大,越接近第一種情況,批資料越小,就越接近第二種情況。
**輪數(epochs):**指的是整個訓練集會被迴圈訓練多少次。很多時候全部資料集訓練一次並不能將神經網路訓練到最佳,因此需要多次訓練。設定epochs過小可能導致欠擬合,而設定過多則會導致過擬合,需要工程師在訓練時自行把握最佳情況。
Openssl入門 1 基本概念了解
安全協議的層次 1 應用層 pgp pretty good privacy 2 傳輸層 ssl 3 網路層 vpn openssl主要由三個部分組成 1 密碼演算法庫 2 ssl協議庫 3 應用程式庫 openssl的主要功能 1 對稱加密演算法 提供了 種對稱加密演算法,其中 種是分組加密演算法,...
Oracle兩個基本概念了解體系結構
要了解oracle體系結構必須先了解兩個基本的概念 資料庫和例項 一 資料庫 資料庫 database 是乙個資料集合。無論資料庫是採用關係結構還是物件導向結構,oracle資料庫都將其資料存放在資料檔案中。在其內部,資料庫結構資料對檔案的邏輯對映,使不同的資料分開儲存,這些邏輯劃分稱為表空間。表空...
Lucene使用前概念了解
資料庫中的搜尋很容易實現,通常都是使用sql語句進行查詢,而且能很快的得到查詢結果。為什麼資料庫搜尋很容易?因為資料庫中的資料儲存是有規律的,有行有列而且資料格式 資料長度都是固定的。我們生活中的資料總體分為兩種 結構化資料和非結構化資料。結構化資料 指具有固定格式或有限長度的資料,如資料庫,元資料...