小编Has*_*has的帖子

如何提高CNN模型针对特定数据集的性能?训练和测试数据集的准确性都很低

我们接到的任务是实现我们自己的神经网络,以及另外两个已经开发的神经网络。我已经这样做了,但是,这不是作业的要求,但我仍然想知道我可以遵循哪些步骤/程序来提高模型的准确性?

我对整个深度学习和机器学习相当陌生,所以没有太多想法。

给定的数据集总共包含 15 个类别(飞机、椅子等),并且我们在训练数据集中为每个类别提供了大约 15 张图像。测试数据集每个类别有 10 张图像。

我的代码的完整 github 存储库可以在这里找到(Jupyter Notebook 文件): https: //github.com/hassanashas/Deep-Learning-Models

我首先用自己的 CNN 进行了尝试(使用 Youtube 教程制作了一个)。代码如下,

X_train = X_train/255.0
model = Sequential()

model.add(Conv2D(64, (3, 3), input_shape = X_train.shape[1:]))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(128, (3, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())
model.add(Dense(64))

model.add(Dense(16)) # added 16 because it model.fit gave error on 15 
model.add(Activation('softmax'))
Run Code Online (Sandbox Code Playgroud)

对于模型的编译,

from tensorflow.keras.optimizers import SGD

model.compile(loss='sparse_categorical_crossentropy', 
             optimizer=SGD(learning_rate=0.01), 
             metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

我使用稀疏分类交叉熵,因为我的“y”标签是整数值,范围从 1 到 15。

我用以下方式运行这个模型,

model_fit = model.fit(X_train, y_train, batch_size=32, epochs=30, validation_split=0.1)
Run Code Online (Sandbox Code Playgroud)

它给我的准确度为0.2030 training dataset …

deep-learning conv-neural-network keras tensorflow

5
推荐指数
1
解决办法
2万
查看次数