Keras學習 1 使用keras建立序列模型

2021-09-02 23:21:26 字數 3412 閱讀 5149

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...