pytorch mnist的auto encoder

Pytorch:线性自编码网络降维(对比PCA) 介绍了几种常见的图像自编码器。实现了线性自编码网络的数据降维,并对比了PCA降维的效果。基于二者的降维数据使用SVM进行分类。 阅读详情
import torch

import torch.nn.functional as F

import torch.nn as nn

import torch.optim as optim

from torch.autograd import variable

from scipy import misc

from torchvision import transforms, datasets

from torchvision.utils import save_image

import os

batch_size = 64

train_data = datasets.MNIST(root='./data/', train=True, transform=transforms.ToTensor(), download= True)

test_data = datasets.MNIST(root= './data/', train=True, transform=transforms.ToTensor(), download= True)

train_loader = torch.utils.data.DataLoader(dataset=train_data, batch_size= batch_size, shuffle= True)

test_loader = torch.utils.data.DataLoader(dataset=test_data, batch_size= batch_size, shuffle=True)

if not os.path.exists('./output_image'):

    os.mkdir('./output_image')

def to_img(x):
    x = 0.5 * (x + 1)
    x = x.clamp(0, 1)
    x = x.view(x.size(0), 1, 28, 28)
    return x

def Load_image():

    tif_data = misc.imread('/Users/changxingya/Downloads/UCSD_Anomaly_Dataset.v1p2/UCSDped1/Train/Train001/001.tif')

    tif_data_tensor = torch.from_numpy(tif_data)

    print(tif_data_tensor.size())

    return tif_data_tensor

class TemporalDetection(nn.Module):

    def __init__(self):

        super(TemporalDetection, self).__init__()

        self.encoder = nn.Sequential(

            nn.Conv2d(1, 16, 3, stride=3),

            nn.ReLU(True),

            nn.Conv2d(16, 32, 3, stride=2),

            nn.ReLU(True)
        )

        self.decoder = nn.Sequential(

            nn.ConvTranspose2d(32, 16, 5, stride=3),

            nn.ReLU(True),

            nn.ConvTranspose2d(16, 1, 2, stride=2),

            nn.Tanh()
        )

    def forward(self, x):

        x = self.encoder(x)

        x = self.decoder(x)

        return x

model = TemporalDetection()

print(model)

optimizer = optim.Adam(model.parameters(), lr=0.001)

loss_function = nn.MSELoss()

def train(epoch):

    for i, (data,target) in enumerate(train_loader):

        output = model(data)

        loss = loss_function(output, data)

        print("Temporal Detection Loss = {}".format(loss))

        optimizer.zero_grad()

        loss.backward()

        optimizer.step()

        if i % 10 == 0:

            img = to_img(output)

            save_image(img, './output_image/image_{}.png'.format(i))

for i in range(1, 10):

    #train_data = Load_image()

    train(i)

    print("Done")
[深度学习]半监督学习、无监督学习之Variational Auto-Encoder变分自编码器(附代码) 论文全称:《Auto-Encoding Variational Bayes》 论文地址:https://arxiv.org/pdf/1312.6114.pdf 论文代码: keras 版本:https://github.com/bojone/vae pytorch 版本:https://colab.research.google.com/github/smartgeometry-ucl/d... 阅读详情

相关推荐

PyTorch - Auto Encoder及其实战

目录AutoEncoder经典AutoEncoderLoss Function的选择Denoising AutoEncoderVariational AutoEncoderReparameterization Trick实战部分AutoEncoder网络的构建数据集加载、训练和结果显示导入包数据集加载训练以及结果显示结果Variational AutoEncoder网络的搭建设置网络(\__init__())forward()数据集加载、训练和结果显示数据集加载训练以及结果显示结果 AutoEncoder

Bro_Jun的博客 1695

【Pytorch】PCA的Pytorch实现

from sklearn import datasets import torch import numpy as np def PCA(data, k=2): X = torch.from_numpy(data) X_mean = torch.mean(X, 0) X = X - X_mean.expand_as(X) U, S, V = torch.svd(torch.t(X)) # U*Diag(S)*V_T return torch.mm(X, U[:,:,k]) iris = d

qq_36643449的博客 5037

史上最全MNIST系列(五)——AutoEncoder(普通、降噪、收缩自编码)在MNIST上的Pytorch实现

文章目录一、理论二、普通自编码网络代码2.1 Encoder.py2.2 Decoder.py2.3 Mainnet.py 一、理论 二、普通自编码网络代码 2.1 Encoder.py import torch import torch.nn as nn class EncoderNet(nn.Module): def __init__(self): super(EncoderNet,self).__init__() self.conv1 = nn.Sequent

wa1tzy的博客 2922

白板推导系列Pytorch-PCA降维

白板推导系列Pytorch-PCA降维 前面在看花书的时候就遇到过PCA,但是花书上的推导和白板推导中的推导不太一样,花书上的推导我至今还没弄清楚,但是这个我懂了,接下来我将以mnist数据集为例实现PCA降维并利用sklearn朴素贝叶斯分类器分类 导入相关包 import torch import matplotlib.pyplot as plt from sklearn.datasets import load_digits from sklearn.model_selection import tr

孤独腹地的博客 2423

保姆级教程:用ncnn把自训练的YOLOv8模型塞进Android App(附完整代码)

本文提供了一份详细的保姆级教程,指导开发者如何将自训练的YOLOv8模型通过ncnn框架部署到Android应用中。教程涵盖环境配置、模型训练与转换、Android工程集成及性能优化等全流程,并附完整代码实现,帮助开发者快速掌握移动端AI模型部署技术。

weixin_42659194的博客 256

TX 的 LOL(Local Oscillator Leakage,本振泄露)

项目内容LOL 是什么本振残留在 TX 输出中心频率上的杂散主要原因IQ 失衡、硬件不完美、零中频架构影响杂散、干扰、性能劣化、安全问题解决方法初始化校准 + 跟踪校准(AD9371 支持)检测手段频谱仪、回环检测、ADC ILA 抓取。

weixin_41230430的博客 2051

机器学习之PyTorch和Scikit-Learn第5章 通过降维压缩数据Part 2

其它章节内容请见。

AlanHou的博客 983

UEC++ 虚幻5笔记(数字孪生示例) day13

文件读取与写入,数字孪生入门制作

qq_44924388的博客 3844

PCA的原理和pytorch实现

PCA的原理和pytorch实现PCA原理简介pytorch实现 PCA即主成分分析在数据降维方面有着非常重要的作用,本文简单介绍其原理,并给出pytorch的实现。 PCA原理简介 PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是...

weixin_43844219的博客 1万+

环境仿真软件:MIKE 21_(9).MIKE21水生植物模块介绍

MIKE21支持多种水生植物的模拟,用户需要在配置文件中定义植物种类及其特性。</</</</</</</</</假设我们需要定义一种新的水生植物“水葫芦”(Water Hyacinth),并将其特性写入配置文件。# 创建XML根元素# 定义新的植物种类# 生成XML文件假设我们需要分析仿真的水流速度变化,并绘制水流速度随时间变化的图。# 读取NetCDF文件# 获取水流速度数据# 获取时间数据# 绘制水流速度随时间变化的图plt.xlabel('时间 (天)')

kkchenjj的博客 727

AIGC实战——变分自编码器(Variational Autoencoder, VAE)

变分自编码器通过在模型中引入随机性,并限制潜空间中的点的分布来解决自编码器存在的问题。只需进行一些微小的调整,就可以将自编码器转换为变分自编码器,从而使其成为真正的生成模型。在本节中,我们介绍了变分自编码器的基本原理,并使用 `Keras` 实现了一个变分自编码器用于生成 Fashion-MNIST 图像。

盼小辉丶的博客 1万+

基于pytorch实现的Auto-encoder模型

最近因为在自己论文当中可能要用到Auto-encoder 这个东西,学了点皮毛之后想着先按照别人的解释实现一下,然后在MNIST数据集上跑了下测试看看效果。 话不多说直接贴代码。 """ Author:Media 2020-10-23 """ import torch import torch.nn as nn import torch.utils.data as Data from matplotlib import pyplot as plt import numpy as np import pand

weixin_44796784的博客 437

面向边缘计算的YOLOv12模型剪枝-蒸馏联合优化实战教程**

这套剪枝-蒸馏联合方案的优势在于其系统性和可靠性。它不是单一的技巧,而是一套完整的工程流程,确保了从研发到部署的无缝衔接。

FJN110的博客 160

Encoder-Decoder和Auto-Encoder的简介

简单了解Encoder-Decoder和AE

weixin_47255403的博客 1988

光学传播仿真软件:ASAP_(1).ASAP软件介绍与安装

ASAP(Advanced System for Analysis and Propagation)是一款强大的光学传播仿真软件,广泛应用于光学系统的设计、分析和优化。它提供了丰富的建模工具和仿真功能,可以帮助用户从简单的光学元件到复杂的光学系统进行仿真。:支持光学、机械、热学等多物理场的联合仿真。:采用高精度的算法,确保仿真结果的准确性。:内置了大量的光学元件,如透镜、反射镜、棱镜、光栅等。:提供直观的用户界面,支持多种建模和仿真方式。:支持使用脚本语言进行二次开发,增强软件的定制能力。

kkchenjj的博客 1601

Jetson nano 系列之2—板载摄像头IMX219启动

我选用的是亚博科技jetson nano的开发板。

驽马十驾,功在不舍;锲而不舍,金石可镂。 4275

pytorch深度学习:自编码器Auto-encoder(二)

上一节我们了解了自编码器的基础知识,这一节我们在pytorch上创建一个自编码器用于处理mnist数据集。 1.问题的描述 关于mnist数据集在这里就不再描述了,相信大家已经很熟悉了。今天使用自编码器有两个目的,即: 使用encoder显示压缩的特征数据。 使用decoder生成mnist数据集。 先对一些超参数进行设置: # 定义一些超参数 EPOCH = 10 BATCH_SIZE = 64 LR = 0.005 DOWNLOAD_MNIST = True # 下过数据的话, 就可以设置成 F

qq_37333048的博客 1352

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Auto-encoder 自编码器 附Pytorch代码 结果可视化

讲解了Auto-encoder 自编码器的运行和一些基础的疑问,适合初学者了解

weixin_43920520的博客 1462

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ccc-pytorch-Auto-Encoders(12)

Auto-Encoders简介、变种AE介绍、Auto-Encoders实战

liubi32326的博客 571

简单记录:自动编码器,pytorch + MNIST

自动编码器( AutoEncoder)最开始作为一种数据的压缩方法,其特点有:(1)跟数据相关程度很高,这意味着自动编码器只能压缩与训练数据相似的数据,因为使用神经网络提取的特征一般是高度相关于原始的训练集,使用人脸训练出来的自动编码器在压缩自然界动物的图片时表现就会比较差,因为它只学习到了人脸的特征,而没有学习到自然界图片的特征。(2)压缩后数据是有损的,这是因为在降维的过程中不可避免地要丢失信息。......

子根的博客 980

使用AutoEncoder对MNIST手写数据集进行表征学习(pytorch)

自编码

weixin_46321755的博客 1431

第十周学习总结

第十周学习总结计算机视觉PyTorch 计算机视觉 复习了无监督学习的相关概念,了解了了计算机视觉中生成模型的不同方法pixelRNNs 、CNNs、Auto-Encoders和GANS,学习了强化学习的基本方法。 PyTorch 对MNIST数据集完成了VAE模型的代码实现,学习了GAN的部分基础知识。 ...

qq_41882866的博客 196

Pytorch Advanced(二) Variational Auto-Encoder

变分自编码 (Variational Autoencoder) 为了让隐层抓住输入数据特性, 而不是简单的输出数据=输入数据,他在隐层中加入随机噪声(单位高斯噪声)(这个过程也叫reparametrize),以确保隐层能较好抽象输入数据特点。有了随机的一张图片之后,我们把他完整的放入模型中,生成了和输入相似的一张图片,也没看出来是修复了图像......model.decode()是一个解码的过程,我们给他一个随机的中间特征z就可以输出一个数字图片了。下面找了一张很丑的图来说明自编码的过程。

青山渺渺 948

[PyTorch][chapter 54][Variational Auto-Encoder 实战]

variational autoencoder的架构和Autoencoder差不多,区别在于不再是把输入当作一个点,而是把输入当成一个分布。,它被定义为一个有规律地训练以避免过度拟合的Autoencoder,可以确保潜在空间具有良好的属性从而实现内容的生成。这里主要实现: Variational Autoencoders (VAEs) 变分自动编码器。训练的过程中加入一些限制,使它的latent space规则一点呢。作用: Variational Autoencoders (VAE)

4AM_明朝百晓生 850

FinRL-Meta 基准评测体系指南:统一绩效指标、基线策略与回测实战

本文以 FinRL-Meta 的 Benchmark 文档([docs/source/finrl_meta/Benchmark.rst](https://link.gitcode.com/i/66705901a2163aaace2128b4d850f112))为骨架,系统讲解 FinRL 项目中用于衡量交易策略的统一绩效指标体系、官方提供的基线策略定义,以及基于这些指标和基线开展回测对比的完整实践

gitblog_01099的博客 309

深度学习笔记 --- 自编码器

自编码器 (Auto-Encoder) 自编码器是通过无监督的方式来学习如何有效压缩和编码一组数据,然后学习如何将数据从简化的编码表示重新构造出尽可能接近原输入的表示。即,将一个D维的数据映射到一个M维的特空间中,并将这串编码尽可能的重构出原始样本。自编码主要是用来降低数据维度和学习如何忽略数据中的噪音。 自编码器主要由两个部分组成: 编码器(Encoder):将目标输入通过神经网络将输入的数据降维到一个code 解码器(Decoder):模型将学习如何从编码中重构出原始样本 在有的教程中,自编码器还有

weixin_43943642的博客 898
上一篇: PCA的数学原理(经典)
下一篇: 异常检测
SoyCoder
博客等级 码龄9年 12粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值