我用我的資料集訓練了我的預訓練模型(densenet-121),用于二進制影像分類。當我使用test_generator時,test_generator的結果看起來不錯,但當我運行我的預測代碼時,我得到的輸出是[0. 1.]我如何解決這個問題?
from keras.preprocessing.image import load_img
from keras.preprocessing.image import img_to_array
from keras.models import load_model
img =
load_image('C:/Users/yurtt/Desktop/orkun/a/b/dataset/test2/not/159.png')
# 預測類
result = model.predict(img)
print(result[0] )
輸出:
[0. 1.]
我的模型:
from keras.applications.densenet import DenseNet121
base_model = DenseNet121(weights='imagenet', include_top=False, input_tensor=Input(shape=input_shape)
x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(1024, kernel_regularizer=l2(0.0001, bias_regularizer=l2(0.0001))(x)
x = BatchNormalization()(x)
x = Activation("relu")(x)
x = Dropout(0.5)(x)
x = Dense(1024, kernel_regularizer=l2(0.0001, bias_regularizer=l2(0.0001))(x)
x = BatchNormalization()(x)
x = Activation("relu")(x)
x = Dropout(0.5)(x)
x = Dense(512, kernel_regularizer=l2(0.0001, bias_regularizer=l2(0.0001))(x)
x = BatchNormalization()(x)
x = Activation("relu")(x)
x = Dropout(0.3) (x)
預測 = Dense(output_classes, activation=tf.nn.softmax)(x)
model = Model(inputs=base_model.input, outputs=prediction)
uj5u.com熱心網友回復:
你定義了output_classes = 2。另一方面,作為輸出層的預測被定義為 prediction = Dense(output_classes, activation=tf.nn.softmax)(x)。因此,預測的輸出有2個維度。你可以保持原樣,但是你需要將目標值轉換為[0 1]和[1 0],這意味著它分別處于2類和1類。
注意,你也可以將output_classes設定為1以保持目標值為0和1。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/310705.html
標籤:
上一篇:在類方法中訪問類變數的正確方式是什么?self.class_variable還是class_name.class_variable?
