如何将单个输入的模型输出转换回预测 类 之一?
How to convert back the model output for single input to one of the prediction classes?
我一直在使用 LabelEncoder 进行分类输出
from keras.utils import np_utils
from sklearn.preprocessing import LabelEncoder
label = LabelEncoder()
y_train = np_utils.to_categorical(label.fit_transform(y_train))
y_test = np_utils.to_categorical(label.fit_transform(y_test))
输出中有4个class,
编码后,标签看起来像这样
模型看起来像这样:
model0 = Sequential()
model0.add(Conv1D(32, kernel_size=(3), input_shape=input_shape))
model0.add(Conv1D(64, kernel_size=(3)))
model0.add(Conv1D(128, kernel_size=(3)))
model0.add(Conv1D(64, kernel_size=(3)))
model0.add(Conv1D(32, kernel_size=(3)))
model0.add(Flatten())
model0.add(Dense(128, activation='relu'))
model0.add(Dense(12, activation='relu'))
model0.add(Dense(4, activation='softmax'))
model0.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
训练后,同时预测如何得到 classes 之一的输出?我尝试使用:
model0.predict_classes(feature.reshape(1,num_features,1))
array([3], dtype=int64)
我怎么知道 class 输出属于哪个?
我找到了解决方法:我们可以在LabelEncoder
class,
中使用inverse_transform()
方法
代码如下:
result = model0.predict_classes(feature.reshape(1,num_features,1))
print(label.inverse_transform(result))
我一直在使用 LabelEncoder 进行分类输出
from keras.utils import np_utils
from sklearn.preprocessing import LabelEncoder
label = LabelEncoder()
y_train = np_utils.to_categorical(label.fit_transform(y_train))
y_test = np_utils.to_categorical(label.fit_transform(y_test))
输出中有4个class,
编码后,标签看起来像这样
模型看起来像这样:
model0 = Sequential()
model0.add(Conv1D(32, kernel_size=(3), input_shape=input_shape))
model0.add(Conv1D(64, kernel_size=(3)))
model0.add(Conv1D(128, kernel_size=(3)))
model0.add(Conv1D(64, kernel_size=(3)))
model0.add(Conv1D(32, kernel_size=(3)))
model0.add(Flatten())
model0.add(Dense(128, activation='relu'))
model0.add(Dense(12, activation='relu'))
model0.add(Dense(4, activation='softmax'))
model0.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
训练后,同时预测如何得到 classes 之一的输出?我尝试使用:
model0.predict_classes(feature.reshape(1,num_features,1))
array([3], dtype=int64)
我怎么知道 class 输出属于哪个?
我找到了解决方法:我们可以在LabelEncoder
class,
inverse_transform()
方法
代码如下:
result = model0.predict_classes(feature.reshape(1,num_features,1))
print(label.inverse_transform(result))