【发布时间】:2019-02-26 03:37:30
【问题描述】:
我正在使用 tensorflow 和 keras 来预测手写数字。对于训练,我使用 nmist 数据集。
训练后准确率约为 98.8%。但有时在测试它在 4 和 9、7 和 3 之间的混淆时,我已经使用 opencv 优化图像输入,例如去除噪声、重新缩放、阈值等。
接下来我应该做什么来改善这个预测准确性?
我的计划是添加更多样本,并将样本图像的大小从 28x28 调整为 56x56。
这会影响准确性吗?
这是我的训练模型:
epoc=15, batch size=64
def build_model():
model = Sequential()
# add Convolutional layers
model.add(Conv2D(filters=32, kernel_size=(3,3), activation='relu', padding='same', input_shape=input_shape))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(filters=64, kernel_size=(3,3), activation='relu', padding='same'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(filters=64, kernel_size=(3,3), activation='relu', padding='same'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten())
# Densely connected layers
model.add(Dense(128, activation='relu'))
# output layer
model.add(Dense(10, activation='softmax'))
# compile with adam optimizer & categorical_crossentropy loss function
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
return model
【问题讨论】:
-
你训练了多少数据。?验证多少钱。?你做过交叉验证吗?
-
nmints 数据集是 60000 个训练数据和 10000 个用于验证的数据。还没有,我会尝试使用 kfold,谢谢建议
-
我还建议使用 Keras ImageGenerator 进行扩充。这将有助于模型更好地泛化
-
我已经用过:它,train_datagen = ImageDataGenerator(rotation_range=5, width_shift_range=0.1, height_shift_range=0.1,shear_range=0.1, zoom_range=0.2, Horizontal_flip=False, fill_mode='nearest')。参数尺寸很小,因为尺寸只有28x28,会弄乱数字
-
在使用交叉验证和一些其他调整之后,是提高准确性还是真实笔迹,谢谢@Sreeram TP
标签: tensorflow keras