微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有人知道我的代码有问题吗?分类报告似乎有问题

如何解决有人知道我的代码有问题吗?分类报告似乎有问题

我这里有问题。 问题出在分类报告中。 预测似乎不正确。我不知道问题出在哪里。

有人可以帮我吗?

这是我的代码

from keras.preprocessing.image import ImageDataGenerator

aug = ImageDataGenerator(rescale=1./255,shear_range=0.2,horizontal_flip=True,rotation_range=45,vertical_flip=True,fill_mode='nearest',height_shift_range=0.5,width_shift_range=0.5
                     )

training_set = aug.flow_from_directory("/content/drive/My Drive/RESEARCH CENTER/Dataset/train",target_size=(224,224),color_mode="rgb",shuffle=True,class_mode='binary')

validation_set = aug.flow_from_directory("/content/drive/My Drive/RESEARCH CENTER/Dataset/test",class_mode='binary')
    from tensorflow.keras.models import Sequential
from tensorflow.keras import regularizers
from tensorflow.keras.layers import InputLayer,Dense,Conv2D,AvgPool2D,Flatten,Batchnormalization,Dropout,MaxPooling2D
from tensorflow.keras.optimizers import Adam
from keras import models   

# Feature Extraction Layer
model = Sequential()

model.add(InputLayer(input_shape=[224,224,3]))
model.add(Conv2D(filters=16,kernel_size=3,strides=1,padding='same',activation='relu'))
model.add(Batchnormalization())
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(filters=32,2)))
model.add(Conv2D(filters=64,2)))
model.add(Conv2D(filters=128,2)))
#model.add(Conv2D(filters=256,activation='relu'))
#model.add(Batchnormalization())
#model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.2))
model.add(Flatten())

# Fully Connected Layer
model.add(Dense(256,activation='relu'))
model.add(Dropout(0.3))
model.add(Dense(1,activation='sigmoid'))

print(model.summary())

    model.compile(optimizer=Adam(lr=0.001),loss='binary_crossentropy',metrics=['acc'])

H = model.fit(training_set,steps_per_epoch=int(len(training_set)),epochs=1000,validation_data=validation_set,validation_steps=int(len(validation_set)),callbacks=[tensorboard_callback])

%matplotlib inline

import matplotlib.pyplot as plt
import numpy as np


plt.style.use("ggplot")
plt.figure()
plt.plot(np.arange(0,1000),H.history["loss"],label="train_loss")
plt.plot(np.arange(0,H.history["val_loss"],label="val_loss")
plt.title("Loss Plot")
plt.xlabel("Epoch #")
plt.ylabel("Loss")
plt.ylim([0.0,15.0])
plt.legend()
plt.show()


plt.style.use("ggplot")
plt.figure()
plt.plot(np.arange(0,H.history["acc"],label="train_acc")
plt.plot(np.arange(0,H.history["val_acc"],label="val_acc")
plt.title("Accuracy Plot")
plt.xlabel("Epoch #")
plt.ylabel("Acc")
plt.ylim([-3,3.0])
plt.legend()
plt.show()

from sklearn.metrics import classification_report,confusion_matrix
from sklearn import metrics
import numpy as np

ypred = model.predict(validation_set,verbose=1)
labels = (ypred > 0.5).astype(np.int)
print(metrics.classification_report(validation_set.classes,labels))

但准确率似乎不正确,而在训练中显示为 0-%,但在分类报告中仅为 50%

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。