Как напечатать вывод данных тренировки в модели керас? - PullRequest
0 голосов
/ 10 января 2019

То, что я делаю, - это тренировка модели с набором данных, содержащим 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 голосов
/ 10 января 2019

Да, просто позвоните model.predict() на данные о вашей тренировке после тренировки:

model.predict(x_train)

Это даст вам простой массив с предсказанными вероятностями классов. Чтобы преобразовать в двоичные значения, примените порог к вероятностям и приведите их к целым числам: (model.predict(x_train) > 0.5).astype(int)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...