Keras學習筆記2 常用函式

2021-10-01 07:49:27 字數 4575 閱讀 1893

全連線層

詳細請看:keras 中文文件

keras是什麼?

1. dense(全連線層)

2. keras.layer.input() (用於例項化keras張量)

3. activation(啟用函式)

4. dropout(正則化層)

5. flatten(展平)

6. reshape(調整輸入大小)

7. lambda(將任意表示式封裝為 layer物件)

這裡將常用的簡單整理一下。

keras:基於theano和tensorflow的深度學習庫

函式:

keras.layers.dense(units, 

activation=none,

use_bias=true,

kernel_initializer='glorot_uniform',

bias_initializer='zeros',

kernel_regularizer=none,

bias_regularizer=none,

activity_regularizer=none,

kernel_constraint=none,

bias_constraint=none)

dense實現以下操作:output = activation(dot(input, kernel) + bias),其中activation是按逐個元素計算的啟用函式,kernel是由網路層建立的權值矩陣,以及bias是其建立的偏置向量 (只在use_biastrue時才有用)。

引數:輸入尺寸nd 張量,尺寸:(batch_size, ..., input_dim)。 最常見的情況是乙個尺寸為(batch_size, input_dim)的 2d 輸入。

輸出尺寸

nd 張量,尺寸:(batch_size, ..., units)。 例如,對於尺寸為(batch_size, input_dim)的 2d 輸入, 輸出的尺寸為(batch_size, units)

input(shape=none, 

batch_shape=none,

name=none,

dtype=none,

sparse=false, 

tensor=none)

input()這個方法是用來初始化乙個keras tensor的,tensor說白了就是個陣列。它強大到通過輸入和輸出就能建立乙個keras模型。例如,如果a,b,c都是keras張量,那麼一下操作是可行的:model=model(input=[a,b],output=c)

引數:返回:乙個張量。

keras.layers.activation(activation)
設定啟用函式

引數:輸入尺寸:任意尺寸。 當使用此層作為模型中的第一層時, 使用引數input_shape(整數元組,不包括樣本數的軸)。

輸出尺寸

與輸入相同。

keras.layers.dropout(rate, 

noise_shape=none,

seed=none)

將 dropout 應用於輸入。dropout 包括在訓練中每次更新時, 將輸入單元的按比率隨機設定為 0, 這有助於防止過擬合。

引數

keras.layers.flatten(data_format=none)
將輸入展平。不影響批量大小。

引數

例:

model = sequential()

model.add(conv2d(64, (3, 3),input_shape=(3, 32, 32), padding='same',))

# 現在:model.output_shape == (none, 64, 32, 32)

model.add(flatten())

# 現在:model.output_shape == (none, 65536) # 65536=64832*32

keras.layers.reshape(target_shape)
將輸入重新調整為特定的尺寸。

引數輸入尺寸任意,儘管輸入尺寸中的所有維度必須是固定的。 當使用此層作為模型中的第一層時, 使用引數input_shape(整數元組,不包括樣本數的軸)。

輸出尺寸

(batch_size,) + target_shape

# 作為 sequential 模型的第一層

model = sequential()

model.add(reshape((3, 4), input_shape=(12,)))

# 現在:model.output_shape == (none, 3, 4)

# 注意: `none` 是批表示的維度

# 作為 sequential 模型的中間層

model.add(reshape((6, 2)))

# 現在: model.output_shape == (none, 6, 2)

# 還支援使用 `-1` 表示維度的尺寸推斷

model.add(reshape((-1, 2, 2)))

# 現在: model.output_shape == (none, 3, 2, 2)

keras.layers.lambda(function, 

output_shape=none,

mask=none,

arguments=none)

將任意表示式封裝為 layer物件

引數輸入尺寸任意。當使用此層作為模型中的第一層時, 使用引數input_shape(整數元組,不包括樣本數的軸)。

輸出尺寸

output_shape引數指定 (或者在使用 tensorflow 時,自動推理得到)。

# 新增乙個 x -> x^2 層

model.add(lambda(lambda x: x ** 2))

# 新增乙個網路層,返回輸入的正數部分

# 與負數部分的反面的連線

Keras學習筆記

手冊 keras中文文件 1.張量 一階張量是向量,二階張量是矩陣。2.batch batch gradient descent,遍歷全部資料集算一次損失函式,然後算函式對各個引數的梯度,更新梯度。太慢。stochastic gradient descent,每看乙個資料就算一下損失函式,然後求梯度...

Keras學習筆記03 常用重要模組

編譯模型必選兩個引數之一 可以通過傳遞預定義目標函式名字指定目標函式,也可以傳遞乙個theano tensroflow的符號函式作為目標函式,該函式對每個資料點應該只返回乙個標量值,並以下列兩個引數為引數 真實的優化目標函式是在各個資料點得到的損失函式值之和的均值。可用的目標函式 編譯模型必選兩個引...

Keras學習筆記02 常用的網路層

在搭建神經網路結構時,我們要向網路中新增一些網路層,下面列舉出來常用的網路層及其相關用法。常用層對應於core模組,core內部定義了一系列常用的網路層,包括全連線 啟用層等。1.dense層 dense層 全連線層。keras.layers.core.dense output dim,init g...