我们接到的任务是实现我们自己的神经网络,以及另外两个已经开发的神经网络。我已经这样做了,但是,这不是作业的要求,但我仍然想知道我可以遵循哪些步骤/程序来提高模型的准确性?
我对整个深度学习和机器学习相当陌生,所以没有太多想法。
给定的数据集总共包含 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 …