如何在keras模型中打印训练数据的输出?

时间:2019-01-10 12:04:01

标签: tensorflow keras neural-network

我正在做的是使用包含318行和6个属性的数据集训练模型。第7个是目标输出(仅1或0)。我只希望模型打印1或0,即模型的输出。我已经按照下面的代码所示训练了模型,并获得了90%的准确性。但是我不知道如何获得每个训练数据的输出值。有什么方法可以打印或生成包含训练数据预测输出的新csv文件? 例如: 目标(第7个属性):1 0 0预测(模型输出):1 0 1 帮助会很棒。谢谢!

from keras.models import Sequential
from keras.layers import Dense, Dropout
from sklearn.model_selection import train_test_split
import numpy

# random seed for reproducibility
numpy.random.seed(2)

# loading heart dataset
dataset = numpy.loadtxt("heartorig1.csv", delimiter=",")

# split into input (X) and output (Y) variables, splitting csv data
X = dataset[:,0:6]
Y = dataset[:,6]

# split X, Y into a train and test set
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2,       random_state=42)

# create model, add dense layers one by one specifying activation function
model = Sequential()
model.add(Dense(10, input_dim=6, activation='relu')) # input layer requires       input_dim param
model.add(Dense(8, activation='relu'))
model.add(Dense(6, activation='relu'))
model.add(Dropout(.2))
model.add(Dense(1, activation='sigmoid')) # sigmoid instead of relu for final probability between 0 and 1

# compile the model, adam gradient descent (optimized)
model.compile(loss="binary_crossentropy", optimizer="adam", metrics=['accuracy'])

# call the function to fit to the data (training the network)
model.fit(x_train, y_train, epochs = 1000, batch_size=20, validation_data=(x_test, y_test))


# save the model
model.save('weights2.h5')

1 个答案:

答案 0 :(得分:0)

是的,只需在训练数据后调用model.predict()

model.predict(x_train)

这将为您提供具有预测的类概率的numpy数组。要转换为二进制值,请对概率应用阈值并将其转换为整数: (model.predict(x_train) > 0.5).astype(int)

相关问题