首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的顺序模型的精度停留在0.2155?

为什么我的顺序模型的精度停留在0.2155?
EN

Stack Overflow用户
提问于 2021-12-03 15:47:29
回答 1查看 57关注 0票数 0

首先,我是机器学习的新手,所以请容忍我缺乏知识。我正在尝试使用序列模型创建一个图像分类器,以检测以下项目-

我已经为每个图像准备了数据集,其中每个图像的维数为(200,200),图像总数约为1200。

问题是,当我训练它的时候,它的精确度会被限制在0.2155-

我完全不知道我哪里出了错,所以有人能帮我解决这个问题,并指出我哪里出错了吗?这是完整的密码-

代码语言:javascript
运行
复制
import numpy as np
import keras
import matplotlib.pyplot as plt
import random
import os
import cv2

X_train=[]
y_train=[]
size= 200

#preprocessing 
imagedir= "preprocessed"
pathdir= os.path.join("Images",imagedir)
for image_name in os.listdir("preprocessed/"):

    image_path= os.path.join("preprocessed",image_name)
    image= cv2.imread(image_path)
    X_train.append(image)
    if image_name.startswith("pen"):
        y_train.append(0)
    elif image_name.startswith("spoon"):
        y_train.append(1)
    elif image_name.startswith("ceiling_fan"):
        y_train.append(2)
    elif image_name.startswith("clock"):
        y_train.append(3)
    elif image_name.startswith("paper_airplane"):
        y_train.append(4)
    elif image_name.startswith("tomato"):
        y_train.append(5)
    elif image_name.startswith("banana"):
        y_train.append(6)
    elif image_name.startswith("leaf"):
        y_train.append(7)
    elif image_name.startswith("coin"):
        y_train.append(8)
    elif image_name.startswith("phone"):
        y_train.append(9)

    
X_train= np.array(X_train)
y_train= np.array(y_train)

X_train= X_train/255



test_size= 30

X_train= X_train[0:-test_size]
y_train= y_train[0:-test_size]

X_test= X_train[-test_size:-1]
y_test= y_train[-test_size:-1]

print(X_train.shape, X_test.shape)
print(y_train.shape, y_test.shape)

X_train_array= X_train.reshape(len(X_train), (size**2)*3)
X_test_array= X_test.reshape(len(X_test), (size**2)*3)

print(X_train_array.shape)

model = keras.Sequential([keras.layers.Dense(10, input_shape=((size**2)*3,), activation='sigmoid')])

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

model.fit(X_train_array, y_train, epochs=100)

y_predict_test=model.predict(X_test_array)

y_predict_test_labels=[]

for i in y_predict_test:
    y_predict_test_labels.append(np.argmax(i))

model.save("Model.h5")

谢谢,提前!

EN

回答 1

Stack Overflow用户

发布于 2021-12-20 17:58:35

为了更高的精度,您可以尝试在模型中添加更多的密集层,还可以将最终密集层的激活函数更改为'softmax',因为模型中有多个类(num_classes=10)。

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

https://stackoverflow.com/questions/70217023

复制
相关文章

相似问题

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