一. 什么是自编码
自编码是什么呢?就是说假如我们需要训练的数据量非常大,那么 神经网络的压力是很大的,所以我们可以 将其压缩一下,再解压,通过对比解压之后的和原来的 数据,反向传播去训练,训练好之后,我们再需要 用到这批数据,就 只需用压缩之后的数据即可,这样就大大减小了神经网络的训练压力,增加了训练效率。看下图就明白了:
二. 简单自编码模型实现(以手写数字数据集为例子)
1. 代码
import torch
import torch.nn as nn
import torch.utils.data as Data
import torchvision
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
# 定义一些参数
EPOCH = 10
BATCH_SIZE = 64
LR = 0.005
DOWNLOAD_