Autoencoder 训练:Adam 优化与二元交叉熵损失函数

本文介绍了使用 Adam 优化器和二元交叉熵损失函数训练 Autoencoder 的方法,并提供了 Keras 和 PyTorch 的代码实现示例。

Keras 代码

# Adam 优化
# loss 函数为 二元交叉熵 binary_cross entropy
# 公式(14)
autoencoder.compile(optimizer=Adam(learning_rate=0.001, beta_1=0.9, beta_2=0.999,
                                   epsilon=None, decay=0.0, amsgrad=False), loss='binary_crossentropy')

# 每次迭代 数据大小为128 迭代300次
# 在验证损失不再改善5个时期时停止训练 早期停止策略
autoencoder.fit(x_train, x_train, epochs=300, batch_size=128, shuffle=True,
                validation_data=(x_test, x_test),callbacks=[EarlyStopping(monitor='val_loss', min_delta=0.0001, patience=5)])

# 预测出的x特征
encoded_data_pre = encoder.predict(x)
storFile(encoded_data_pre, 'DCSLCS(Dataset1)(64dim).csv')

PyTorch 代码

# Adam 优化
# loss 函数为 二元交叉熵 binary_cross entropy
# 公式(14)
import torch.optim as optim
import torch.nn as nn

criterion = nn.BCELoss()
optimizer = optim.Adam(autoencoder.parameters(), lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0, amsgrad=False)

# 每次迭代 数据大小为128 迭代300次
# 在验证损失不再改善5个时期时停止训练 早期停止策略
for epoch in range(300):
    running_loss = 0.0
    for i, data in enumerate(trainloader, 0):
        inputs, labels = data

        optimizer.zero_grad()

        outputs = autoencoder(inputs)
        loss = criterion(outputs, inputs)
        loss.backward()
        optimizer.step()

        running_loss += loss.item()
    if epoch % 10 == 9:
        print('[%d, %5d] loss: %.3f' % 
              (epoch + 1, i + 1, running_loss / 10))
        running_loss = 0.0

    if early_stopping and epoch > 5:
        if val_loss[-1] > val_loss[-6]:
            print("Early stopping. Validation loss did not improve for 5 consecutive epochs.")
            break

# 预测出的x特征
encoded_data_pre = encoder(torch.from_numpy(x).float())
storFile(encoded_data_pre.detach().numpy(), 'DCSLCS(Dataset1)(64dim).csv')

总结

本文介绍了使用 Adam 优化器和二元交叉熵损失函数训练 Autoencoder 的方法,并提供了 Keras 和 PyTorch 的代码实现示例。通过使用早期停止策略可以有效地避免过拟合。最终预测的特征可以被保存为 CSV 文件,以便于后续分析。

Autoencoder 训练:Adam 优化与二元交叉熵损失函数

原文地址: https://www.cveoy.top/t/topic/m3Qn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录