板上的大大好,
最近自學時所遇到這個問題不能理解,
我想利用keras分類2個圖片,
我將這2個圖片資料複製成2000個,
也就是各1000個相同的資料,
並將其中20%設為驗證組,
在沒有設定Dropout的情況下,
為什麼訓練組在第1次訓練時,準確率不會是100%,
因為是用一模一樣的資料不是應該不會有錯誤的情況,
我想問是因為activation的選用所造成的,還是有其他因素導致這個結果?
希望有人能替我解惑,感謝。
以下是模型有關的code
#建立模型
model = Sequential()
# 模型加入【輸入層】與【第一層卷積層】
model.add(Conv2D(filters=16,
kernel_size=(5,5),
padding='same',
input_shape=(306,102,1),
activation='relu'))
# 模型加入【第一層池化層】
model.add(MaxPooling2D(pool_size=(2, 2)))
# 模型加入【第二層卷積層】
model.add(Conv2D(filters=64,
kernel_size=(5,5),
padding='same',
activation='relu')
# 模型加入【第二層池化層】
model.add(MaxPooling2D(pool_size=(2, 2)))
# 模型加入【平坦層】
model.add(Flatten())
# 模型加入【隱藏層】
model.add(Dense( units = 128,
activation='relu'))
model.add(Dense(2,
activation='softmax'))
print(model.summary())
# 設定模型的訓練方式
model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])
train_history=model.fit(x=x_Train4D_normalize,
y=y_TrainOneHot,
validation_split=0.2,
epochs=5,
batch_size=2,
verbose=2)
作者: kaneson (Lance) 2019-11-19 22:32:00
因為gradient descent 找 loss 的 local min 不是一次到位, learning rate也是因素