如何使用keras python中的学习模型确定输入数据?

时间:2018-05-08 17:43:23

标签: python deep-learning keras

我正在使用以下代码学习我的数据集。

import numpy as np
from keras.models import Sequential
from keras.layers import Dense

np.random.seed(5)
dataset = np.loadtxt('path to dataset', delimeter=',')

x_train=dataset[:700,0:3]
y_train=dataset[:700,3]
x_test=dataset[700:,0:3]
y_test=dataset[700:,3]

model =Sequential()
model.add(Dense(12, input_dim=3, activate='relu'))
model.add(Dense(8, activate='relu'))
model.add(Dense(1, activate='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer = 'adam', metrics = ['acuuracy'])
model.fit(x_train,y_train,epochs = 100, batch_size =24)

score = model.evaluate(x_test,y_test)

以上学习数据由三个属性和两个类组成。

我想使用上面学习的模型来确定该类不包含的数据。

例如,学习数据是(1,34,23,0)。

我在输入中输入的数据是(3,56,33),所以我想对类进行分类

将学习的模型与这些属性信息一起使用。

如果你能给我一个具体的方法,我将非常感激。

1 个答案:

答案 0 :(得分:1)

您可以使用model.predict()函数来确定任何新数据点的类。在你的情况下,如果你想预测类(3,56,33),你可以在拟合模型后写这个,

model.fit(x_train,y_train,epochs = 100, batch_size =24)
prediction_prob = model.predict(np.array([3,56,33]))

由于您在最后一层使用sigmoid激活,因此输出将是0到1之间的单个概率值。然后,您可以对预测进行阈值处理以获得最终的类值。

prediction_prob = model.predict(np.array([3,56,33]))
class_name = int(round(prediction_prob[0]))
print(class_name)

请记住,model.predict()将numpy数组作为输入并输出另一个numpy预测数组。