TensorFlow Adam优化器返回奇怪的损失

2024-06-17 15:26:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在构建一个分类算法,当我运行该模型时,精度开始很高,然后直线下降,然后慢慢重建,我认为梯度下降是为了继续提高精度,至少在我训练的十个时期

print(train_data.shape, train_labels.shape)
train_data = tf.random.shuffle(
    train_data, seed=None, name=None
)

data = tf.linalg.normalize(
    train_data, ord='euclidean', axis=None, name=None
)

def get_compiled_model():
    model = tf.keras.Sequential([
        tf.keras.layers.Flatten(input_shape=(25,)),
        tf.keras.layers.Dense(4, activation='relu'),
        tf.keras.layers.Dense(10, activation='relu'),
        tf.keras.layers.Dense(1, activation='sigmoid')
    ])
    
    opt = tf.keras.optimizers.Adam(learning_rate=0.1)
    model.compile(optimizer=opt,
                 loss=tf.keras.losses.BinaryCrossentropy(),
                 metrics=['accuracy'])
    return model 

model = get_compiled_model()
opt = tf.keras.optimizers.Adam(learning_rate=0.1)
model.compile(loss = "binary_crossentropy", optimizer = opt, metrics=['accuracy'])

#model = get_compiled_model()
epochs = 10
history = model.fit(
    data[0], 
    train_labels, 
    epochs=epochs, 
    batch_size=1,
    #verbose=0
)

Epoch 1/10
499/499 [==============================] - 1s 758us/step - loss: 0.7037 - accuracy: 0.5150
Epoch 2/10
499/499 [==============================] - 0s 813us/step - loss: 0.7047 - accuracy: 0.4890
Epoch 3/10
499/499 [==============================] - 0s 989us/step - loss: 0.7180 - accuracy: 0.4770
Epoch 4/10
499/499 [==============================] - 0s 701us/step - loss: 0.7125 - accuracy: 0.4790
Epoch 5/10
499/499 [==============================] - 0s 696us/step - loss: 0.7022 - accuracy: 0.4970
Epoch 6/10
499/499 [==============================] - 0s 729us/step - loss: 0.7102 - accuracy: 0.4930
Epoch 7/10
499/499 [==============================] - 0s 995us/step - loss: 0.7030 - accuracy: 0.4890
Epoch 8/10
499/499 [==============================] - 0s 678us/step - loss: 0.7074 - accuracy: 0.4669
Epoch 9/10
499/499 [==============================] - 0s 659us/step - loss: 0.7011 - accuracy: 0.5150
Epoch 10/10
499/499 [==============================] - 0s 607us/step - loss: 0.6992 - accuracy: 0.5311