全連線層
詳細請看: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_bias
為true
時才有用)。
引數:輸入尺寸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...