关于自编码 (Autoencoder),可见但理解为,当输入信息的信息量比较大时,神经网络直接从大量信息中学习是很复杂一件事,但是如果将信息进行压缩,保留关键部分,神经网络学习起来就比较轻松了,等到学习完,可以将信息解压,对比正确率,然后不断地反向传播进行修改权重。
下面的例子是将MNIST图片进行压缩后解压:
import torch
import torch.nn as nn
import torch.utils.data as Data
import torchvision
import matplotlib.pyplot as plt
import numpy as np
"""超参数"""
EPOCH = 10 # 一共运行10次
BATCH_SIZE = 64 # 每批运行64个数据
LR = 0.005 # 学习率
DOWNLOAD_MNIST = False # 是否下载图片数据集,第一次运行为True,以后运行为False
N_TEST_IMG = 10 # 显示数据的列数
"""下载图片数据集"""
train_data = torchvision.datasets.MNIST(
root='./mnist/', # 下载存储位置
train=True, # 是否为训练集
transform=torchvision.transforms.ToTensor(), # 转换为tensor形式&#