#python #machine-learning #keras #deep-learning #tensorflow2.0
Вопрос:
Я получаю следующее сообщение об ошибке при попытке обучить многослойную нейронную сеть набору данных о мошенничестве с кредитными картами.
InvalidArgumentError: assertion failed: [predictions must be >= 0] [Condition x >= y did not hold element-wise:] [x (sequential_1/dense_9/Sigmoid:0) = ] [[-nan][-nan][1]...] [y (Cast_5/x:0) = ] [0]
[[{{node assert_greater_equal/Assert/AssertGuard/else/_1/assert_greater_equal/Assert/AssertGuard/Assert}}]] [Op:__inference_train_function_2751675]
Function call stack:
train_function
Когда я изначально тренирую последовательную модель, она работает идеально. Но когда я пытаюсь назначить вес класса и снова тренировать его, у меня возникает эта проблема.
# Importing required models
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.layers import Dropout
# Defining the model
model = Sequential([
Dense(16, input_dim = 29,activation='relu'), # input of 29 columns as shown above
Dense(24,activation='relu'),
Dropout(0.5), # A dropout added to prevent overfitting
Dense(24,activation='relu'),
Dense(24,activation='relu'),
Dense(1,activation='sigmoid'), # Output layer with Sigmoid activation function
])
model.summary()
# Defining loss and optimizer for compiling the model
from tensorflow.keras.optimizers import SGD # Stochastic Gradient Descent Optimizer
opt = SGD(learning_rate=0.01, momentum=0.75)
model.compile(optimizer=opt, loss='binary_crossentropy', metrics=METRICS)
model.fit(X_train,y_train,batch_size=15,epochs=10)
Приведенный выше код работает нормально. Но приведенный ниже код выдает указанную ошибку.
weights_assigned = {0:1,1:557}
# Training the model using `class_weight` now
model.fit(X_train,y_train,batch_size=15, class_weight=weights_assigned, epochs=10, shuffle=True)
Кто-нибудь может мне в этом помочь?