ケラスのシーケンシャルモデル

シーケンシャルモデル(シーケンシャル):単一入力単一出力、1つのパスが終了につながり、レイヤー間に隣接関係のみがあり、クロスレイヤー接続はありません。このモデルは、コンパイル速度が速く、操作が比較的簡単です。

model = Sequential()

シーケンシャルモデルの中心的な操作は、レイヤーを追加することです。次に、最も人気のあるレイヤーのいくつかをモデルに追加する方法を示します。

畳み込み層

model.add(Conv2D(64, (3, 3), activation='relu')) #激活函数为relu

最大プーリングレイヤー

model.add(MaxPooling2D(pool_size=(2, 2)))

完全に接続されたレイヤー

model.add(Dense(256, activation='relu'))

ドロップ
アウトドロップアウトとは、深層学習トレーニングのプロセスを指します。ニューラルネットワークトレーニングユニットの場合、特定の確率に従ってネットワークから削除されます。過剰適合を減らすために一時的なものであることに注意してください

model.add(Dropout(0.5))

平坦化層

model.add(Flatten())

シーケンシャルモデルを使用する場合は、損失関数とオプティマイザーを定義する必要があります。

model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adadelta(),
              metrics=['accuracy'])

トレーニングするビルドモデルには、この時点でfit()メソッドが使用されます。

model.fit(x_train, y_train,
          batch_size=batch_size,
          epochs=epochs,
          verbose=1,
          validation_data=(x_test, y_test))

バッチサイズ、反復回数、検証データセットはすべて自分で定義する必要があります。値はネットワークごとに異なる場合があります。独自のモデルに応じて適切な値を見つける必要があります。

最後に、evaluateメソッドを使用してモデルを評価します。

score = model.evaluate(x_train,y_train,batch_size = 32)

ここに画像の説明を挿入
トレーニングセットとテストセットの損失と精度が表示されます。

最後に、モデルの持続可能性を実現するには、トレーニングされたモデルを保存する必要があります。

# 保存模型参数
model.save('model.h5')

おすすめ

転載: blog.csdn.net/qq_43811879/article/details/109538119