keras怎么搭建卷積神經(jīng)網(wǎng)絡(luò)

小億
95
2024-03-16 16:11:41

在Keras中搭建卷積神經(jīng)網(wǎng)絡(luò)(CNN)可以通過Sequential模型或Functional API來實(shí)現(xiàn)。下面分別介紹這兩種方法:

  1. Sequential模型:
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

model = Sequential()

# 添加卷積層和池化層
model.add(Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(filters=64, kernel_size=(3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

# 展平層
model.add(Flatten())

# 添加全連接層
model.add(Dense(units=128, activation='relu'))
model.add(Dense(units=10, activation='softmax'))

model.summary()
  1. Functional API:
from keras.models import Model
from keras.layers import Input, Conv2D, MaxPooling2D, Flatten, Dense

input_layer = Input(shape=(28, 28, 1))

# 添加卷積層和池化層
conv1 = Conv2D(filters=32, kernel_size=(3, 3), activation='relu')(input_layer)
pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)

conv2 = Conv2D(filters=64, kernel_size=(3, 3), activation='relu')(pool1)
pool2 = MaxPooling2D(pool_size=(2, 2))(conv2)

# 展平層
flatten = Flatten()(pool2)

# 添加全連接層
fc1 = Dense(units=128, activation='relu')(flatten)
output_layer = Dense(units=10, activation='softmax')(fc1)

model = Model(inputs=input_layer, outputs=output_layer)
model.summary()

以上是搭建一個(gè)簡單的卷積神經(jīng)網(wǎng)絡(luò)的示例,你可以根據(jù)具體的任務(wù)需求和數(shù)據(jù)集來調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)。訓(xùn)練模型時(shí),你需要使用compile方法來編譯模型,并調(diào)用fit方法來訓(xùn)練模型。

0