keras學習 1 使用keras建立序列模型
sequential model就是一些列layers的簡單堆疊。首先, 我們建立乙個簡單的前向全連線網路。輸入維度784
from keras.models import sequential
from keras.layers import dense, activation
model = sequential([
dense(32, input_shape=(784,)),
activation('relu'),
dense(10),
activation('softmax'),
])
我們也可以通過.add直接新增新的網路層。
model = sequential()
model.add(dense(32, input_dim=784))
model.add(activation('relu'))
這個模型需要知道所處理的輸入資料的維度,所以第一層也只有第一層需要知道輸入資料的維度。因為之後的網路層可以推斷所處理的維度。有幾種方式傳入輸入資料的維度。
1.傳入input_shape給第一層。 它必須是整數或者是none,none代表任意整數。但是input_shape並沒有包括batch的維度。
2.一些二維的網路層,支援input_dim來定義維度,如dense,三維的可以通過input_dim 和 input_length。
3。如果需要定義batch維度,可以傳入batch_size。如果傳入batch_size=32和input_shape=(6,8),等價於每乙個batch的形狀都是(32,6,8).
model = sequential()
model.add(dense(32, input_dim=784))
model = sequential()
model.add(dense(32, input_shape=(784,)))
這兩個add等價
在訓練之前,需要通過compile method來定義訓練過程。它有三個引數:
1.優化器optimizer。
2.損失函式 loss function。
3. 一些評價指標。如accuracy等。
# for a multi-class classification problem
model.compile(optimizer='rmsprop', #可以選擇其他的optimizer
loss='categorical_crossentropy',#因為多分類問題選擇categorical
metrics=['accuracy'])
# for a binary classification problem
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
# for a mean squared error regression problem
model.compile(optimizer='rmsprop',
loss='mse')
# for custom metrics
import keras.backend as k
def mean_pred(y_pred):
return k.mean(y_pred)
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy', mean_pred])
訓練過程使用fit函式
# for a single-input model with 2 classes (binary classification):
model = sequential()
model.add(dense(32, activation='relu', input_dim=100))
model.add(dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
# generate dummy data
import numpy as np
data = np.random.random((1000, 100))
labels = np.random.randint(2, size=(1000, 1))
# train the model, iterating on the data in batches of 32 samples
model.fit(data, labels, epochs=10, batch_size=32)
使用乙個mlp做例子,二元分類問題。
import numpy as np
from keras.models import sequential
from keras.layers import dense, dropout
# generate dummy data
x_train = np.random.random((1000, 20))
y_train = np.random.randint(2, size=(1000, 1))
x_test = np.random.random((100, 20))
y_test = np.random.randint(2, size=(100, 1))
model = sequential()
model.add(dense(64, input_dim=20, activation='relu'))
model.add(dropout(0.5))
model.add(dense(64, activation='relu'))
model.add(dropout(0.5))
model.add(dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
model.fit(x_train, y_train,
epochs=20,
batch_size=128)
score = model.evaluate(x_test, y_test, batch_size=128)
Keras學習之路 1
用keras實現異 剛剛看了keras的說明,想著簡單用keras實現一下這個神經網路。from keras.models import sequential from keras.layers import dense,activation,dropout import numpy as np x...
keras學習筆記1 Keras模組概述
keras主要包括14個模組,本文主要對models layers initializations activations objectives optimizers preprocessing metrics共計8個模組分別展開介紹,並通過乙個簡單的bp神經網路說明各個模組的作用。1.model ...
keras初步學習
import os os.environ keras backend theano import keras 這樣就可以將keras依賴於theano using theano backend.2.曲線擬合 importos os.environ keras backend theano impor...