我们将使用 Pytorch 中的 AutoEncoder(自动编码器架构)来减少特征维度和可视化。
北大出版社,人工智能原理与实践 人工智能和数据科学从入门到精通 详解机器学习深度学习算法原理
人工智能原理与实践 全面涵盖人工智能和数据科学各个重要体系经典
首先,要安装 PyTorch,您可以使用以下 pip 命令,
$ pip install torch torchvision
torchvision 包含可在 PyTorch 中使用的图像数据集。
安装
导入相关依赖
import matplotlib.pyplot as plt
import numpy as np
import torch
import torch.nn as nn
import torch.optim as optim
import torchvision
设置随机种子和其他配置以实现可重复性。
seed = 21
torch.manual_seed(seed)
torch.backends.cudnn.benchmark = False
torch.backends.cudnn.deterministic = True
设置batch大小、训练epoch数和学习率。
batch_size = 512
epochs = 50
learning_rate = 1e-3
获取数据
使用 torchvision 包加载 MNIST 数据集作为方便的示例。
transform = torchvision.transforms.Compose([torchvision.transforms.ToTensor()])
train_dataset = torchvision.datasets.MNIST(
root="~/torch_datasets", train=True, transform=transform, download=True
)
train_loader = torch.utils.data.DataLoader(
train_dataset, batch_size=batch_size, shuffle=True
)
检查其中一个数据点
examples = enumerate(train_loader)
batch_idx, (example_data, example_targets) = next(examples)
example_data[0][0].max()
tensor(1.)
Autoencoder
自动编码器是一种神经网络,它找到将特征 x 映射到自身的函数。 这个目标被称为重建,自动编码器通过以下过程实现这一目标:
(1) 编码器学习低维空间中的数据表示,
(2) 解码器根据编码器学习到的表征学习重建原始数据。
在下文中,我们为其编码器和解码器组件定义了具有完全连接层和激活函数的自动编码器类。
from torch import Tensor
class AE(nn.Module):
def __init__(self, **kwargs):
super().__init__()
self.encoder_hidden_layer = nn.Linear(
in_features=kwargs["input_shape"], out_features=1000
)
self.encoder_output_layer = nn.Linear(
in_features=1000

本文介绍了如何使用PyTorch构建自动编码器,通过减少MNIST数据的特征维度,并展示可视化结果。学习了神经网络结构,训练过程和特征重构的质量评估。
最低0.47元/天 解锁文章
1684

被折叠的 条评论
为什么被折叠?



