進來看了看keras, 比tf友好的多啊,總結下:
keras有兩種型別的模型,順序模型(sequential)和泛型模型(model)
首先比較簡單的順序型
**示例
model = sequential(
)model.add(dense(32, input_shape=
(500,))
)model.add(dense(10, activation=
'softmax'
))model.compile(optimizer=
'rmsprop',
loss=
'categorical_crossentropy',
metrics=
['accuracy'])
model.fit( x, y, batch_size=32, nb_epoch=10, verbose=1, callbacks=
, validation_split=0.0, validation_data=none, shuffle=true, class_weight=none, sample_weight=none)
score = model.evaluate(x_test, y_test, batch_size=32)
model.predict(x, batch_size=32, verbose=0)
model.predict_classes( x, batch_size=32, verbose=1)
model.predict_proba(x, batch_size=32, verbose=1)
sequential(
) 代表類的初始化;
dense(
) 代表全連線層,引數32表示本層有32個神經元,然後接relu啟用層,由於是第一層,計算機不知道應該是以多少維增加,因此,後面新增輸入維度數100。這一層需要訓練100*32+32個引數。
model.add(
) 相當於把模型一層層拼接起來。
model.compile(
)函式中輸入優化器,損失函式等資訊
model.fit(
)中傳入需要訓練的資料x,y以及訓練的批次等資訊,開始訓練
model.evaluate(
)用來評估模型的誤差函式的返回值是**值的numpy array
model.predict_classes:本函式按batch產生輸入資料的類別**結果;
model.predict_proba:本函式按batch產生輸入資料屬於各個類別的概率
函式式模型基本屬性與訓練流程
一般需要:
1、model.layers,新增層資訊;
2、model.compile,模型訓練的bp模式設定;
3、model.fit,模型訓練引數設定 + 訓練;
4、evaluate,模型評估;
5、predict 模型**
from keras.models import model
from keras.layers import input, dense
a = input(shape=
(32,))
b = dense(32)
(a)model = model(input=a, output=b)
model.compile(optimizer, loss, metrics=
, loss_weights=none, sample_weight_mode=none)
model.fit(x, y, batch_size=32, nb_epoch=10, verbose=1, callbacks=
, validation_split=0.0, validation_data=none, shuffle=true, class_weight=none, sample_weight=none)
model.evaluate(x, y, batch_size=32, verbose=1, sample_weight=none)
model.predict(x, batch_size=32, verbose=0)
例子
from keras.layers import input, dense
from keras.models import model
# this returns a tensor
inputs = input(shape=
(784,))
# a layer instance is callable on a tensor, and returns a tensor
x = dense(64, activation=
'relu'
)(inputs)
# 輸入inputs,輸出x
# (inputs)代表輸入
x = dense(64, activation=
'relu'
)(x)
# 輸入x,輸出x
predictions = dense(10, activation=
'softmax'
)(x)
# 輸入x,輸出分類
# this creates a model that includes
# the input layer and three dense layers
model = model(inputs=inputs, outputs=predictions)
model.compile(optimizer=
'rmsprop',
loss=
'categorical_crossentropy',
metrics=
['accuracy'])
model.fit(data, labels)
# starts training
keras的Model模型的引數說明
keras的model模型的引數說明 keras中的容易混淆的概念 epoch 乙個epoch是把所有訓練樣本訓練一遍。batch size 計算梯度下降時每個batch包含的樣本量 steps per epoch 一輪epoch訓練包含的步數,預設 none 樣本總數 batch size 注意 ...
Keras筆記 3 關於Keras的模型型別
keras有兩種型別的模型,序貫模型 sequential 和函式式模型 model 函式式模型應用更為廣泛,序貫模型是函式式模型的一種特殊情況。兩類模型有一些方法是相同的 config model.get config model model.from config config or,for s...
iOS開發 關於model的處理
ios開發 model的處理重點不是把資料解析變成字典然後對映到model的屬性上面,而是幹model該幹的事。model該幹什麼呢?1.資料的獲取,發網路請求放在model裡比較的合適,放到controller中就有點不合適了 2.資料的改變處理。以後怎麼幹?1.只給model定義乙個dic屬性,...