序貫模型(sequential model)是多個網路層的線性堆疊,也就是」一條路走到黑」。但是不適合網路之間穿插情況或者多輸入多輸出情況。
序貫模型有兩種方式構建網路
2.1簡單的漢堡式疊法
可以通過sequential模型傳遞乙個layer的list來構造序貫模型。
#完成網路構建#兩種方式1.漢堡生成
model = sequential([
dense(32,input_dim=784),
activation('relu'),
dense(10),
activation('softmax')
])
2.2加菜式構建模型
或者通過.add()方法乙個個將layer加入到模型中
#2.手動加菜
#完成網路構建model = sequential()
model.add(dense(32,input_shape=(784,)))
model.add(activation('relu'))
#結果acc停留在0.1060左右,跑了n次結果都停留在10%左右from keras.models import sequential
#sequential宣告使用序貫模型
from keras.layers import dense, dropout, activation
#匯入層dropout隨機失活 dense全連線層、activation啟用函式
from keras.optimizers import sgd
#sgd隨機梯度下降
import keras
import numpy as np
x_train = np.random.random((1000, 20))
#隨機訓練樣本,樣本維度20維
y_train = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=10)
#對映成10個類別
x_test = np.random.random((100, 20))
y_test = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)
model = sequential()
#建立模型
#新增網路層
model.add(dense(64, activation='relu', input_dim=20))
# dense(64)神經元有64個
#input_dim必須與樣本維度對應
#activation啟用函式
model.add(dropout(0.5))#隨機失活
model.add(dense(64, activation='relu'))
model.add(dropout(0.5))
model.add(dense(10, activation='softmax'))
sgd = sgd(lr=0.01, decay=1e-6, momentum=0.8, nesterov=true)#制定優化器引數學習率0.01,動量0.8
model.compile(loss='categorical_crossentropy',
optimizer=sgd,
metrics=['accuracy'])
model.fit(x_train, y_train,
epochs=20,
batch_size=128)
score = model.evaluate(x_test, y_test, batch_size=128)
#flatten作用是方便後面接全連線層
from keras.layers import conv2d, maxpooling2d
#conv2d構建2d卷積層,maxpooling2d構建池化層
from keras.optimizers import sgd
準備資料
x_train = np.random.random((100, 100, 100, 3))
#100張寬高100,3彩色圖rgb三個顏色通道
y_train = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)
x_test = np.random.random((20, 100, 100, 3))
y_test = keras.utils.to_categorical(np.random.randint(10, size=(20, 1)), num_classes=10)
#模型構建
model = sequential()
model.add(conv2d(32, (3, 3), activation='relu', input_shape=(100, 100, 3)))
model.add(conv2d(32, (3, 3), activation='relu'))
model.add(maxpooling2d(pool_size=(2, 2)))
model.add(dropout(0.25))
model.add(conv2d(64, (3, 3), activation='relu'))
model.add(conv2d(64, (3, 3), activation='relu'))
model.add(maxpooling2d(pool_size=(2, 2)))
model.add(dropout(0.25))
model.add(flatten())
model.add(dense(256, activation='relu'))
model.add(dropout(0.5))
model.add(dense(10, activation='softmax'))
#開始訓練測試
sgd = sgd(lr=0.01, decay=1e-6, momentum=0.9, nesterov=true)
model.compile(loss='categorical_crossentropy', optimizer=sgd)
model.fit(x_train, y_train, batch_size=32, epochs=10)
score = model.evaluate(x_test, y_test, batch_size=32)
Keras 序貫模型Sequential學習筆記
序貫模型是多個網路層的線性堆疊,也就是 一條路走到黑 1 通過sequential構建模型 可以通過向sequential模型傳遞乙個layer的list來構造該模型 匯入序貫模型 from keras.models import sequential 匯入神經網路前向傳播層結構和啟用函式 from...
5 序貫模型細節
keras有兩種型別的模型,序貫模型 sequential 和函式式模型 model 函式式模型應用更為廣泛,序貫模型是函式式模型的一種特殊情況。兩種模型的共同方法 model.summary 列印出模型概況,它實際呼叫的是keras.utils.print summary model.get co...
時空序貫指示模擬和序貫高斯模擬的步驟
一 時空序貫指示模擬 1 每個樣點進行四次指示變換,小於那個閾值取1,否則取0 2 計算四次,得到四個理論變異函式 3 定義時空格網矩陣和隨機路徑 4 隨機取下一格網,對四個指示變數stok 5 概率值內插或外推,得累積概率分布,隨機取一值,作為已知點代入下一點模擬 6 所有時空網格是否完成模擬,是...