分类图像,Tensorflow,准确度停留在10%

ifsvaxew  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(120)

实际上,我正在为我的IT研究做CINIC-10分类图像挑战。
我以前从未有过深度学习的经验,所以我是通过一些YouTube视频来学习的。
我第一次尝试用MNIST数据集来手写数字,我从中得到了很好的经验。我的模型有92%的预测概率,效果很好。
现在,我正在尝试对一些图像进行分类,即使我使用来自Keras的不同模型,我的训练模型也不会超过10%的准确率。
我是这样做的:
首先,我加载我的Dasets,我有一个训练数据集和一个验证数据集。

# loading in the data

train_ds = tf.keras.preprocessing.image_dataset_from_directory(
cinic_directory_train,
validation_split=0.2,
subset="training",
seed=123,
image_size=(32, 32),
batch_size=16
)

validation_ds = tf.keras.preprocessing.image_dataset_from_directory(
cinic_directory_train,
validation_split=0.2,
subset="validation",
seed=123,
image_size=(32, 32),
batch_size=16  
)

有了它我就可以得到我的班级名字

class_names= train_ds.class_names
print(class_names)

Output :
['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck'\]

这是我的模型结构:

model = keras.Sequential([

    keras.layers.experimental.preprocessing.Rescaling(1./255),
    keras.layers.Conv2D(16, 3, padding='same', activation='relu'),
    keras.layers.MaxPooling2D(),
    keras.layers.Conv2D(32, 3, padding='same', activation='relu'),
    keras.layers.MaxPooling2D(),
    keras.layers.Conv2D(64, 3, padding='same', activation='relu'),
    keras.layers.MaxPooling2D(),
    keras.layers.Dropout(0.2),
    keras.layers.Flatten(),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10)

])

model.compile(
optimizer='adam',  #Fonction d'optimisation
loss='sparse_categorical_crossentropy', 
metrics=['accuracy']
)

当我开始训练时

history = model.fit( 
train_ds, 
validation_data=validation_ds, 
epochs=3 
)

我的准确度卡在0.09和0.10之间
我甚至测试了我的朋友代码,我一直得到同样的准确性,除了他们得到像30-50%的准确性。
我用谷歌合作为这个。
我试过所有这些模型,我一直得到一个低的准确性:

  • VVG16 =〉9%
  • 残余50 =〉9%
  • 净密度=〉8%
  • 净效率=〉2%
  • 移动网络=〉9%

我找不到我的问题和如何解决它!

h79rfbju

h79rfbju1#

最后一层应该是

keras.layers.Dense(10. activation='softmax')

相关问题