繁体   English   中英

CNN模型仅预测1个类别

[英]CNN Model is predicting only 1 class

我已经为二进制分类编码了CNN模型。 我的数据集有偏差(56000张图像的类别1和3000张图像的类别2)。 我正在测试108张图像(每个班级54张)。 我的模型将每个图像预测为第1类。您能告诉我我的模型出了什么问题以及如何改善它吗?

IMG_SIZE = 32
LR = 1e-1


convnet = input_data(shape=[None, IMG_SIZE, IMG_SIZE, 3], name='input')

convnet = conv_2d(convnet, 32, 5, activation='relu')
convnet = max_pool_2d(convnet, 5)

convnet = conv_2d(convnet, 64, 5, activation='relu')
convnet = max_pool_2d(convnet, 5)

convnet = conv_2d(convnet, 128, 5, activation='relu')
convnet = max_pool_2d(convnet, 5)

convnet = conv_2d(convnet, 64, 5, activation='relu')
convnet = max_pool_2d(convnet, 5)

convnet = conv_2d(convnet, 32, 5, activation='relu')
convnet = max_pool_2d(convnet, 5)

convnet = fully_connected(convnet, 1024, activation='relu')
convnet = dropout(convnet, 0.8)

convnet = fully_connected(convnet, 2, activation='softmax')
convnet = regression(convnet, optimizer='adam', learning_rate=LR, loss='categorical_crossentropy', name='targets')

model = tflearn.DNN(convnet, tensorboard_dir='/home/anas/Argentinadata/log')






train = training_data[:50000]
test =training_data[50000:]




X = np.array([i[0] for i in train]).reshape(-1,IMG_SIZE,IMG_SIZE,3)
Y = [i[1] for i in train]

test_x = np.array([i[0] for i in test]).reshape(-1,IMG_SIZE,IMG_SIZE,3)

test_y = [i[1] for i in test]



print(len(test_x))


print(len(X))

print(len(Y))


model.fit({'input': X}, {'targets': Y}, n_epoch=25, validation_set=({'input': test_x}, {'targets': test_y}),
            snapshot_step=500, show_metric=True, run_id=MODEL_NAME)

这仅意味着该模型发现最容易预测一个类别并获得〜95%的准确性。 尝试进行权重训练或复制2类的图像,直到1类和2类的分割比例约为50/50。

在这种情况下,我将建议两件事(更直接的事情):

1.使用batchsize = 30-40

  1. 整理数据以在每个批次中包括更好的多样性

您可以通过tflearn为此目的使用data_utils:

tflearn.data_utils.shuffle (your_array)

您可以在这里查看文档

您可以做的另一件事是对数据进行重新采样以包括更多的少数类,但是您没有足够大的父样本。 因此,您可以尝试手动批量插入少数类的数据。

您还可以在少数派类别上训练生成模型并逐步生成一些数据点,但可能会导致少数派类别过拟合

更复杂的解决方法是修改成本函数,方法是在少数群体类别的预测错误的情况下,分配更高的成本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM