Почему моя нейросеть Keras имеет нулевую точность? - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь обучить нейронную сеть выполнять простое сопоставление, то есть от X до Y. В этом случае я пытаюсь сопоставить значение с соответствующей ошибкой. И X, и Y - массивы размером 1077.

В данных много шума, и связь, по сути, отсутствует. Поэтому я решил пойти с классификацией, а не регрессии. Если я использую MSE (см. Ниже), точность никогда не становится выше нуля, а потери огромны и не меняются.

# Data preprocessing
from sklearn.model_selection import train_test_split

A_train, A_test, Aerror_train, Aerror_test = train_test_split(A, A_error, 
test_size=0.33, random_state=42)

# Defining and compiling the model
model = Sequential() # initializing a sequential model
model.add(Dense(1, activation = 'relu', input_shape = (1,))) #first layer 
model.add(Dropout(0.2)) 
model.add(Dense(1, activation = 'relu'))
model.add(Dropout(0.2))
model.add(Dense(1, activation ='softmax'))

model.summary()
model.compile(loss = 'mean_squared_error', optimizer = 'sgd', 
metrics = ['accuracy'] ) #sgd = stochastic gradient descent, cat_ce = 
probability that increases as the predicted and actual values diverge

Если я попытаюсь использовать функцию потерь разреженной категориальной кроссентропии, так как я хочу сделать многослойную классификацию

Я получаю следующую ошибку:

InvalidArgumentError (see above for traceback): Received a label value of 
15614 which is outside the valid range of [0, 1).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...