这部分是利用pytorch 进行实战,利用自动编码器来实现手写字体的降噪问题
代码基于python3.7, pytorch 1.0,cuda 10.0 .
PyTorch之自动编码实战(卷积神经网络模型)¶
所谓的自动编码器通俗点讲就是通过线性模型或卷积模型将具有噪声的图像输入进行提取特征,然后通过相同的操作进行解码还原,这就是编码解码的过程和思想。 这部分实现的是利用自动编码器模型解决的是一个去除图片马赛克的问题,基于卷积神经网络模型的神经网络。
import torch
import torchvision
from torchvision import datasets, transforms
from torch.autograd import Variable
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# 数据预处理
transform = transforms.Compose([transforms.ToTensor(),
transforms.Normalize(mean = [0.5],std = [0.5])]) # 注意到MNIST数据集的图像是灰度图像,单通道
# 数据读取
dataset_train = datasets.MNIST(root = './data',
transform = transform,
train = True,
download = False)
dataset_test = datasets.MNIST(root = './data',
transform = transform,
train = False)
# 数据载入
train_load = torch.utils.data.DataLoader(dataset = dataset_train,batch_size = 64,shuffle = True)
test_load = torch.utils.data.DataLoader(dataset = dataset_test,batch_size = 64,shuffle = True)
# 数据可视化
images, label = next(iter(train_load))
print(images.shape)
images_example = torchvision.utils.make_grid(images)
images_example = images_example.numpy().transpose(1,2,