首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分类图像,Tensorflow,精度在10%以内

分类图像,Tensorflow,精度在10%以内
EN

Stack Overflow用户
提问于 2022-11-17 10:33:57
回答 1查看 29关注 0票数 0

我实际上是在为我的IT研究做CINIC-10分类图像挑战。

我以前从来没有过DeepLearning的经验,所以我从youtube上学到了它。

我第一次尝试了MNIST数据集来手写数字,并从中获得了很好的经验。我的模型预测的概率为92%,而且效果很好。

现在我正在尝试对一些图像进行分类,即使我使用与Keras不同的模型,我的训练模型的准确率也不会超过10%。

我是这样做的:

首先,我正在加载我的达西集,我有一个火车数据集和一个验证数据集。

代码语言:javascript
运行
复制
# 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  
)

这样我就可以得到我的类名了

代码语言:javascript
运行
复制
class_names= train_ds.class_names
print(class_names)

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

这是我的模型结构:

代码语言:javascript
运行
复制
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']
)

当我开始火车的时候

代码语言:javascript
运行
复制
history = model.fit( 
train_ds, 
validation_data=validation_ds, 
epochs=3 
)

我的准确度在0.09到0.10之间

我甚至测试了我的朋友的代码,我不断获得相同的准确性,除了他们得到了大约30-50%的准确性。

我在用google Collabs做这个。

我试过所有这些模型,我一直保持着很高的精确度:

8%

  • EfficientNet
  • VVG16 => 9%
  • Resnet50 => 9%
  • DenseNEt => => 2%
  • MobileNet => F 215

我找不到我的问题,也找不到解决问题的方法!

EN

回答 1

Stack Overflow用户

发布于 2022-11-18 01:08:06

最后一层应该是

代码语言:javascript
运行
复制
keras.layers.Dense(10. activation='softmax')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74473904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档