簡體   English   中英

每個訓練keras模型后的結果都不同

[英]The results after each training keras model are different

我是機器學習的新手。 我想建立一個用於面部識別的keras模型。 我目前在以下位置使用該模型:

model = Sequential()
model.add(Conv2D(32, (3, 3), padding='same',
             input_shape=x_train.shape[1:]))
model.add(Activation('relu'))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(64, (3, 3), padding='same'))
model.add(Activation('relu'))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes))
model.add(Activation('softmax'))

# initiate RMSprop optimizer
opt = keras.optimizers.rmsprop(lr=0.0001, decay=1e-6)

# Let's train the model using RMSprop
model.compile(loss='categorical_crossentropy',
          optimizer=opt,
           metrics=['accuracy'])

我用相同的數據和參數訓練了相同的東西,但是訓練的結果卻大不相同,結果是100%或28%。 是什么導致了差異?

設置種子,在訓練模型時可以解決問題。 這將為您提供可重復性。

np.random.seed(10)
tf.set_random_seed(10)

還要確保訓練和測試拆分也不會改變。 因此,您也可以為數據拆分設置種子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM