#python #keras
Вопрос:
Я пытаюсь запустить следующий код, который берет набор данных о болезни Паркинсона и обучает нейронную сеть. Я хочу сохранить точность и потери сети в каждую эпоху в течение 10000 эпох. Я использую CSVLogger для выполнения этой задачи. Регистратор сохраняет csv-файл с тремя столбцами: эпохи, потери и точность. Однако, когда я проверяю csv после выполнения кода, точность одинакова для каждой эпохи. Это не те точности, которые печатаются при запуске самой модели. Как я могу заставить CSVLogger сохранять точность печати при запуске модели?
import numpy as np
from numpy import loadtxt
from keras.models import Sequential
from keras.layers import Dense
from keras.callbacks import CSVLogger
# load the dataset
data = loadtxt('/Users/ciarasikking/Desktop/Research/Python Codes/Parkinsons Data/pd_speech_features.csv', delimiter=',')
data_pd = np.delete(data, [0], 1)
# split into input (X) and output (y) variables
X = data_pd[:,0:753]
y = data_pd[:,753]
# define the keras model
model_pd = Sequential()
model_pd.add(Dense(1, input_dim=753, activation='sigmoid'))
model_pd.add(Dense(1, activation='sigmoid'))
csv_logger = CSVLogger("Keras_pd_data10000.csv", append=True)
# compile the keras model
model_pd.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# fit the keras model on the dataset
model_pd.fit(X, y, epochs=10000, batch_size=10, callbacks=(csv_logger))
Изображение csv, которое создает CSVLogger:
Изображение точности, которое печатается при запуске модели: