pytorch构建卷积自编码器实现图片的压缩的功能,图片检索(以图搜图)功能

该博客通过PyTorch实现了卷积自编码器,应用于MNIST数据集的图像压缩。同时,利用自编码器进行了手写数字的‘以图搜图’功能,展示训练过程及代码,并呈现了在测试集中随机10张不同类别图片的最相似搜索结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 使用Pytorch构建卷积自编码器,尝试对MNIST数据集进行压缩。
  2. 利用上述自编码器完成手写数字的“以图搜图”的功能。
    要求有构建与训练自编码器的代码和训练过程,以及以图搜图的结果(在测试集中随机拿出10张类别不同的图片,查找其中每个图片的最接近的5-10张图片)。

代码实现:

import numpy as np
import torch
import torchvision
from torch.utils.data import Dataset,DataLoader
import torch.nn as nn
from torch import optim
from torchvision.datasets import MNIST
from PIL import Image
import matplotlib.pyplot as plt
from torch.optim.lr_scheduler import StepLR
import os
from torchvision import transforms as T
import cv2

os.environ["CUDA_VISIBLE_DEVICES"]="0,1,2"

transform=T.Compose([
        T.Resize((28,28)),
        T.Grayscale(),
        T.ToTensor(),
    ])

#定义数据对象
class MNISTDataset(Dataset):
    def __init__(self,images,transform):
        self.dataset=images.data.to(torch.float32)
        self.transform=transform
    def __getitem__(self,index):
        data=self.dataset[index]
        data=np.asarray(data)
        data=Image.fromarray(data)
        data=self.transform(data)
        return data
    def __len__(self):
        return len(self.dataset)
    
##加载数据
def load_mnist():
    trainMnist=MNIST('',download=False,train=True)
    testMnist=MNIST('',download=False,train=False)
    trainMnist=MNISTDataset(trainMnist,transform=transform)
    testMnist
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值