【发布时间】:2021-10-28 21:50:47
【问题描述】:
我正在尝试用两个标签来训练一个分类问题进行预测。由于某种原因,我的validation_loss和我的损失在训练时总是卡在0。可能是什么原因?调用损失函数时有什么问题吗?它们是否适合多标签分类?
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=12, shuffle=True)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=12, shuffle=True)
model = keras.Sequential([
#keras.layers.Flatten(batch_input_shape=(None,24)),
keras.layers.Dense(first_neurona, activation='relu'),
keras.layers.Dense(second_neurona, activation='relu'),
keras.layers.Dense(third_neurona, activation='relu'),
keras.layers.Dense(fourth_neurona, activation='relu'),
keras.layers.BatchNormalization(), #WE NORMALIZE THE INPUT DATA
keras.layers.Dropout(0.25),
keras.layers.Dense(2, activation='softmax'),
#keras.layers.BatchNormalization() #for multi-class problems we use softmax? 2 clases: Forehand or backhand
])
model.compile(optimizer=keras.optimizers.Adam(learning_rate=lr),
loss='categorical_crossentropy',
metrics=['accuracy'])
history=model.fit(X_train, y_train, epochs=n_epochs, batch_size=batchSize, validation_data=(X_val, y_val))
test_loss, test_acc = model.evaluate(X_test, y_test)
编辑: 查看我的训练数据的形状:
X_train shape : (280, 14) X_val shape : (94, 14) y_train shape : (280, 2) y_val shape : (94, 2)
调用函数时的参数:
first neuron units:4
second neuron units: 8
learning rate= 0.0001
epochs= 1000
batch_size=32
还有指标图:
【问题讨论】:
-
请打印出 X_train、X_val、y_train、y_val 的形状。还显示每层中神经元数量的值。显示几个时期的 model.fit 打印输出
-
嗨,格里,我把你说的都包括在内了。请参阅我的编辑。我真的坚持这一点,我不明白为什么它仍然停留在 0。可能是实施了一些错误的 Keras 参数吗?
标签: tensorflow keras deep-learning