Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python keras CNN模型预测良好,但只有一个标签无法预测_Python_Machine Learning_Keras_Conv Neural Network - Fatal编程技术网

Python keras CNN模型预测良好,但只有一个标签无法预测

Python keras CNN模型预测良好,但只有一个标签无法预测,python,machine-learning,keras,conv-neural-network,Python,Machine Learning,Keras,Conv Neural Network,在我训练模型预测24个类别的标签后,每个类别使用2800张图像,并拍摄5000张图像进行验证,我运行了一些测试,以查看标签预测的质量,我设计了一个程序来获取文件夹测试中的所有图像,并预测标签所有的类都是好的,除了类19,测试中1000个图像中没有一个预测为19 有人有解决办法吗 这是模型架构: model = Sequential() model.add(Conv2D(filters=32, kernel_size=2,padding='same',activation='relu',inpu

在我训练模型预测24个类别的标签后,每个类别使用2800张图像,并拍摄5000张图像进行验证,我运行了一些测试,以查看标签预测的质量,我设计了一个程序来获取文件夹测试中的所有图像,并预测标签所有的类都是好的,除了类19,测试中1000个图像中没有一个预测为19

有人有解决办法吗

这是模型架构:

model = Sequential()

model.add(Conv2D(filters=32, kernel_size=2,padding='same',activation='relu',input_shape=(32,32,1)))

model.add(MaxPooling2D(pool_size=2))


model.add(Conv2D(filters=64, kernel_size=2, padding='same', activation='relu'))

model.add(MaxPooling2D(pool_size=2))

model.add(Flatten())

model.add(Dense(1024, activation='relu'))

model.add(Dropout(0.2))

model.add(Dense(24, activation='softmax'))

model.summary()
这是优化器和培训师:

optimizer = rmsprop(learning_rate=0.0001)

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

checkpointer = ModelCheckpoint(filepath='CNN_newData.hdf5',verbose=1,
                               save_best_only=True)
hist = model.fit(x_train,y_train,batch_size=128,epochs=100,
                 validation_data=(x_valid,y_valid),callbacks=[checkpointer],
                 verbose=2,shuffle=True)
这是图像为预测而准备的方式:

  for img in images:

            read_img = cv2.imread('test-images/' + file + '/' + img)
            read_img = cv2.cvtColor(read_img,cv2.COLOR_RGB2GRAY)
            read_img = read_img.reshape( -1,32, 32, 1)
            read_img = read_img.astype('float32')/255
            maxind = model.predict_classes(read_img)
  • 我想你的数据集是平衡的吧
  • 你能上传你的损失/准确度曲线吗
  • 您尝试过其他优化器吗?您的
    RMSprop
    learning\u比率低于默认值,且净值相当浅
  • 您是否可以共享这些数据?你至少可以肯定,那里没有矛盾的知识吗
read_img=cv2.imread('test-images/'+file+'/'+img)

请不要自己动手。一旦将此模型推到基于linux的云上,您就会遇到麻烦。检查

  • 尝试使用默认参数运行
    adam
  • model.add(密集型(1024,activation='relu'))
    -它相当大,后面只有24个标签。试试更小的,比如240
  • 内核大小看起来很奇怪,conv内核不应该很奇怪吗?尝试内核大小=3
  • 尝试添加一些正则化
      • 我想你的数据集是平衡的吧
      • 你能上传你的损失/准确度曲线吗
      • 您尝试过其他优化器吗?您的
        RMSprop
        learning\u比率低于默认值,且净值相当浅
      • 您是否可以共享这些数据?你至少可以肯定,那里没有矛盾的知识吗
      read_img=cv2.imread('test-images/'+file+'/'+img)

      请不要自己动手。一旦将此模型推到基于linux的云上,您就会遇到麻烦。检查

      • 尝试使用默认参数运行
        adam
      • model.add(密集型(1024,activation='relu'))
        -它相当大,后面只有24个标签。试试更小的,比如240
      • 内核大小看起来很奇怪,conv内核不应该很奇怪吗?尝试内核大小=3
      • 尝试添加一些正则化

      数据集是平衡的(2800个列车图像,1000个测试图像)我没有损失/精度曲线(不知道如何使用Keras绘制它们)是的,我尝试了Adam optimizer相同的结果(至于学习率,我降低了它,因为模型做了大量工作)至于数据,我不能分享,因为它确实属于一家公司,但我通过使用Keras增强添加了更多数据。路径仅用于个人测试,以查看每个类别的每个标签的准确性?我实现了你所说的所有内容,除了正则化步骤。你有任何文档吗?我可以理解,我看到了视频开发了mnist分类,他们在稠密层中使用了1024,那么我为什么要将其减少到240例如,如果网络容量太高,即使熵很低,它也会过度拟合。检查一下这个和一个。当涉及到架构时,有一些硬规则。你必须摆弄参数来获得一些直觉。否则,在调整模型的超参数时,您将在等待中死去。数据集是平衡的(2800个列车图像,1000个测试图像)我没有损失/精度曲线(不知道如何使用Keras绘制它们)是的,我尝试了Adam optimizer相同的结果(至于学习率,我降低了它,因为模型做了大量工作)至于数据,我不能分享,因为它确实属于一家公司,但我通过使用Keras增强添加了更多数据。路径仅用于个人测试,以查看每个类别的每个标签的准确性?我实现了你所说的所有内容,除了正则化步骤。你有任何文档吗?我可以理解,我看到了视频开发了mnist分类,他们在稠密层中使用了1024,那么我为什么要将其减少到240例如,如果网络容量太高,即使熵很低,它也会过度拟合。检查一下这个和一个。当涉及到架构时,有一些硬规则。你必须摆弄参数来获得一些直觉。否则,在调整模型的超参数时,您将在等待中死去。