板上的大大好,
最近自学时所遇到这个问题不能理解,
我想利用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也是因素