日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AE自动编码器代码

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AE自动编码器代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

博主的其他平臺:博客園

自動編碼器的結構


自動編碼器包括編碼器和解碼器。編碼器對編碼,解碼器解碼,作用跟主成分分析PCA類似,效果更好。編碼器可以將高維度降到一維或其他維度。解碼器進行解碼,載跟原始數據對比計算損失函數。
實際我們只使用到編碼器的輸出,也就是降維后的特征,然后送入監督學習訓練模型。

下面的代碼是用編碼器將fashion-mnsit降到一維,然后在感知機上訓練分類模型。

import torch from torch import nn from torch.utils.data import DataLoader from torchvision import transforms, datasetsnp.random.seed(123) torch.manual_seed(123)LR = 0.0001 #編碼器輸出潛在向量的長度 HIDDEN_SIZE = 128 epochs = 20#如果有gpu,就調用gpu device = torch.device("cuda" if torch.cuda.is_available() else "cpu")train_dataset = datasets.FashionMNIST('./data/', True, transforms.ToTensor(), download=False) test_dataset = datasets.FashionMNIST('./data/', False, transforms.ToTensor()) train_loader = DataLoader(train_dataset, 256, True) test_loader = DataLoader(test_dataset, 256, False)#定義感知機,用于分類 num_inputs, num_outputs, num_hiddens = HIDDEN_SIZE, 10, 256 mlp = nn.Sequential(nn.Linear(num_inputs, num_hiddens),nn.ReLU(),nn.Linear(num_hiddens, num_outputs),).to(device)#定義自編碼器AE class AutoEncoder(nn.Module):def __init__(self):super(AutoEncoder, self).__init__()self.en_conv = nn.Sequential(nn.Conv2d(1, 16, 4, 2, 1),nn.BatchNorm2d(16),nn.Tanh(),nn.Conv2d(16, 32, 4, 2, 1),nn.BatchNorm2d(32),nn.Tanh(),nn.Conv2d(32, 16, 3, 1, 1),nn.BatchNorm2d(16),nn.Tanh())self.en_fc = nn.Linear(16*7*7, HIDDEN_SIZE)self.de_fc = nn.Linear(HIDDEN_SIZE, 16*7*7)self.de_conv = nn.Sequential(nn.ConvTranspose2d(16, 16, 4, 2, 1),nn.BatchNorm2d(16),nn.Tanh(),nn.ConvTranspose2d(16, 1, 4, 2, 1),nn.Sigmoid())def forward(self, x):en = self.en_conv(x)code = self.en_fc(en.view(en.size(0), -1))de = self.de_fc(code)decoded = self.de_conv(de.view(de.size(0), 16, 7, 7))return code, decoded#實例化模型,送到device net = AutoEncoder().to(device)#編碼器訓練 def AutoEncoder_train():#開啟模式net.train()#定義自編碼器的優化器和損失函數optimizer = torch.optim.Adam(net.parameters(), lr=LR,weight_decay=5e-6)loss_f = nn.MSELoss()#訓練for epoch in range(1, epochs+1):for step, (data, label) in enumerate(train_loader):data = data.to(device)net.zero_grad()code, decoded = net(data)loss = loss_f(decoded, data)loss.backward()optimizer.step()print('AutoEncoder epoch [%d/%d] loss:%.4f'%(epoch, epochs, loss))#開啟預測模式,使每次預測結果都是確定性的net.eval()#利用編碼器得到的特征訓練感知機 def train():#訓練自編碼器AutoEncoder_train()#訓練mlpprint('\nmlp training....................\n')#定義感知機的優化器和損失函數optimizer = torch.optim.Adam(mlp.parameters(), lr=LR)loss = torch.nn.CrossEntropyLoss()#訓練mlpfor epoch in range(1, epochs+1):#啟動訓練模式mlp.train()for step, (data, label) in enumerate(train_loader):data = data.to(device)label = label.to(device)mlp.zero_grad()#利用編碼器輸出的向量作為提取特征進行訓練模型code, decoded = net(data)output = mlp(code)l = loss(output, label)l.backward()optimizer.step()print('mlp : eoch: [%d/%d], '%(epoch, epochs), end='')#測試本次epoch后的訓練集精度和損失test(test_loader)#測試感知機的精度 def test(data_loader):#開啟模型預測模式mlp.eval()#定義交叉熵損失函數loss = torch.nn.CrossEntropyLoss()acc_sum, n, loss_sum = 0, 0, 0.0for step, (data, label) in enumerate(data_loader):data = data.to(device)label = label.to(device)code, decoded = net(data)output = mlp(code)l = loss(output, label)#計算預測精度和損失acc_sum += (output.argmax(dim=1)==label).float().sum().item()n += label.shape[0]loss_sum +=lprint('acc:%.2f%% loss:%.4f' %(100*acc_sum/n, loss_sum/(step+1)))if __name__ == '__main__':train()print('模型的測試精度: ', end='')test(test_loader)

運行結果入下:

總結

以上是生活随笔為你收集整理的AE自动编码器代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日屁视频| 日韩欧美视频二区 | 久久福利国产 | 婷婷中文| 亚洲高h| 国产精品伦子伦免费视频 | 人妻av无码一区二区三区 | 亚洲欧美综合精品久久成人 | 国内精品视频一区 | 国产一二视频 | 国产婷婷一区二区三区 | 国产福利社 | 国产黄在线 | 日本一级淫片免费放 | 国产黄a三级三级三级 | 四季av国产一区二区三区 | 久久精品视频在线播放 | 香蕉中文网| 欧美一级免费在线观看 | 女女h百合无遮羞羞漫画软件 | av一级在线 | 日本在线h | 六月激情网 | 欧美激情精品久久久久久 | 国产精品福利在线播放 | 国内激情 | 婷婷久久五月天 | 久久成人精品视频 | 谁有毛片网址 | 亚洲欧美精选 | 青青伊人久久 | 一区二区三区国产在线 | 国产日韩欧美精品在线观看 | 天天曰夜夜曰 | 久久无码专区国产精品s | 午夜电影一区二区 | 亚洲丝袜在线观看 | 精品亚洲永久免费精品 | 精品不卡一区二区 | 久久免费激情视频 | 懂色中文一区二区在线播放 | a国产精品| 在线观看不卡一区 | 少妇厨房愉情理伦bd在线观看 | 能在线观看的av | www.久久精品视频 | 亚洲国产日韩一区无码精品久久久 | 亚洲欧美日韩一区二区三区在线观看 | 中文视频在线 | 亚洲第一女人av | 亚洲精品字幕在线 | 在线欧美| 中文字幕成人动漫 | 牛牛影视一区二区三区 | 国产肥老妇视频 | 国产精品三级av | 国产一区二区久久精品 | www麻豆 | 在线观看毛片av | 亚洲在线激情 | 国产白浆视频 | 国产精品女同一区二区 | 秋霞av鲁丝片一区二区 | 99久国产 | 欧美日韩视频一区二区 | h片免费在线观看 | 亚欧视频在线观看 | 日本xx视频| 欧美乱妇在线观看 | 九九热视频在线播放 | 国语对白清晰刺激对白 | 午夜三级视频 | www.成人在线 | 国产日韩一区二区三免费高清 | 中文字幕亚洲乱码 | 无码人妻精品一区二区蜜桃色欲 | 91偷拍精品一区二区三区 | 黄色肉肉视频 | 91精品国产一区二区无码 | 中文在线不卡 | 涩涩资源网 | 色妞色| 日本韩国欧美一区二区 | 最近最新中文字幕 | 国产伦精品一区二区 | 国产欧美一区二区三区精华液好吗 | 亚洲av成人无码一区二区三区在线观看 | 亚洲天天影视 | 亚洲xxx视频 | 老熟妇仑乱视频一区二区 | 天天摸天天干天天操 | 国产www性| 在线看日本 | 中文视频一区 | 欧美精品一区二区三区久久久竹菊 | 欧美91精品久久久久国产性生爱 | 欧美乱轮 | 超碰caopor | 夜夜春很很躁夜夜躁 |