亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > pytorch 如何使用batch訓(xùn)練lstm網(wǎng)絡(luò)

pytorch 如何使用batch訓(xùn)練lstm網(wǎng)絡(luò)

熱門標(biāo)簽:應(yīng)電話機(jī)器人打電話違法嗎 地圖標(biāo)注線上如何操作 400電話辦理哪種 天津電話機(jī)器人公司 手機(jī)網(wǎng)頁嵌入地圖標(biāo)注位置 開封語音外呼系統(tǒng)代理商 開封自動外呼系統(tǒng)怎么收費(fèi) 河北防封卡電銷卡 電銷機(jī)器人的風(fēng)險(xiǎn)

batch的lstm

# 導(dǎo)入相應(yīng)的包
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import torch.utils.data as Data 
torch.manual_seed(1) 
 
# 準(zhǔn)備數(shù)據(jù)的階段
def prepare_sequence(seq, to_ix):
    idxs = [to_ix[w] for w in seq]
    return torch.tensor(idxs, dtype=torch.long)
  
with open("/home/lstm_train.txt", encoding='utf8') as f:
    train_data = []
    word = []
    label = []
    data = f.readline().strip()
    while data:
        data = data.strip()
        SP = data.split(' ')
        if len(SP) == 2:
            word.append(SP[0])
            label.append(SP[1])
        else:
            if len(word) == 100 and 'I-PRO' in label:
                train_data.append((word, label))
            word = []
            label = []
        data = f.readline()
 
word_to_ix = {}
for sent, _ in train_data:
    for word in sent:
        if word not in word_to_ix:
            word_to_ix[word] = len(word_to_ix)
 
tag_to_ix = {"O": 0, "I-PRO": 1}
for i in range(len(train_data)):
    train_data[i] = ([word_to_ix[t] for t in train_data[i][0]], [tag_to_ix[t] for t in train_data[i][1]])
 
# 詞向量的維度
EMBEDDING_DIM = 128
 
# 隱藏層的單元數(shù)
HIDDEN_DIM = 128
 
# 批大小
batch_size = 10  
class LSTMTagger(nn.Module):
 
    def __init__(self, embedding_dim, hidden_dim, vocab_size, tagset_size, batch_size):
        super(LSTMTagger, self).__init__()
        self.hidden_dim = hidden_dim
        self.batch_size = batch_size
        self.word_embeddings = nn.Embedding(vocab_size, embedding_dim)
 
        # The LSTM takes word embeddings as inputs, and outputs hidden states
        # with dimensionality hidden_dim.
        self.lstm = nn.LSTM(embedding_dim, hidden_dim, batch_first=True)
 
        # The linear layer that maps from hidden state space to tag space
        self.hidden2tag = nn.Linear(hidden_dim, tagset_size)
 
    def forward(self, sentence):
        embeds = self.word_embeddings(sentence)
        # input_tensor = embeds.view(self.batch_size, len(sentence) // self.batch_size, -1)
        lstm_out, _ = self.lstm(embeds)
        tag_space = self.hidden2tag(lstm_out)
        scores = F.log_softmax(tag_space, dim=2)
        return scores
 
    def predict(self, sentence):
        embeds = self.word_embeddings(sentence)
        lstm_out, _ = self.lstm(embeds)
        tag_space = self.hidden2tag(lstm_out)
        scores = F.log_softmax(tag_space, dim=2)
        return scores 
 
loss_function = nn.NLLLoss()
model = LSTMTagger(EMBEDDING_DIM, HIDDEN_DIM, len(word_to_ix), len(tag_to_ix), batch_size)
optimizer = optim.SGD(model.parameters(), lr=0.1)
 
data_set_word = []
data_set_label = []
for data_tuple in train_data:
    data_set_word.append(data_tuple[0])
    data_set_label.append(data_tuple[1])
torch_dataset = Data.TensorDataset(torch.tensor(data_set_word, dtype=torch.long), torch.tensor(data_set_label, dtype=torch.long))
# 把 dataset 放入 DataLoader
loader = Data.DataLoader(
    dataset=torch_dataset,  # torch TensorDataset format
    batch_size=batch_size,  # mini batch size
    shuffle=True,  #
    num_workers=2,  # 多線程來讀數(shù)據(jù)
)
 
# 訓(xùn)練過程
for epoch in range(200):
    for step, (batch_x, batch_y) in enumerate(loader):
        # 梯度清零
        model.zero_grad()
        tag_scores = model(batch_x)
 
        # 計(jì)算損失
        tag_scores = tag_scores.view(-1, tag_scores.shape[2])
        batch_y = batch_y.view(batch_y.shape[0]*batch_y.shape[1])
        loss = loss_function(tag_scores, batch_y)
        print(loss)
        # 后向傳播
        loss.backward()
 
        # 更新參數(shù)
        optimizer.step()
 
# 測試過程
with torch.no_grad():
    inputs = torch.tensor([data_set_word[0]], dtype=torch.long)
    print(inputs)
    tag_scores = model.predict(inputs)
    print(tag_scores.shape)
    print(torch.argmax(tag_scores, dim=2))

補(bǔ)充:PyTorch基礎(chǔ)-使用LSTM神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)手寫數(shù)據(jù)集識別

看代碼吧~

import numpy as np
import torch
from torch import nn,optim
from torch.autograd import Variable
from torchvision import datasets,transforms
from torch.utils.data import DataLoader
# 訓(xùn)練集
train_data = datasets.MNIST(root="./", # 存放位置
                            train = True, # 載入訓(xùn)練集
                            transform=transforms.ToTensor(), # 把數(shù)據(jù)變成tensor類型
                            download = True # 下載
                           )
# 測試集
test_data = datasets.MNIST(root="./",
                            train = False,
                            transform=transforms.ToTensor(),
                            download = True
                           )
# 批次大小
batch_size = 64
# 裝載訓(xùn)練集
train_loader = DataLoader(dataset=train_data,batch_size=batch_size,shuffle=True)
# 裝載測試集
test_loader = DataLoader(dataset=test_data,batch_size=batch_size,shuffle=True)
for i,data in enumerate(train_loader):
    inputs,labels = data
    print(inputs.shape)
    print(labels.shape)
    break
# 定義網(wǎng)絡(luò)結(jié)構(gòu)
class LSTM(nn.Module):
    def __init__(self):
        super(LSTM,self).__init__()# 初始化
        self.lstm = torch.nn.LSTM(
            input_size = 28, # 表示輸入特征的大小
            hidden_size = 64, # 表示lstm模塊的數(shù)量
            num_layers = 1, # 表示lstm隱藏層的層數(shù)
            batch_first = True # lstm默認(rèn)格式input(seq_len,batch,feature)等于True表示input和output變成(batch,seq_len,feature)
        )
        self.out = torch.nn.Linear(in_features=64,out_features=10)
        self.softmax = torch.nn.Softmax(dim=1)
    def forward(self,x):
        # (batch,seq_len,feature)
        x = x.view(-1,28,28)
        # output:(batch,seq_len,hidden_size)包含每個(gè)序列的輸出結(jié)果
        # 雖然lstm的batch_first為True,但是h_n,c_n的第0個(gè)維度還是num_layers
        # h_n :[num_layers,batch,hidden_size]只包含最后一個(gè)序列的輸出結(jié)果
        # c_n:[num_layers,batch,hidden_size]只包含最后一個(gè)序列的輸出結(jié)果
        output,(h_n,c_n) = self.lstm(x)
        output_in_last_timestep = h_n[-1,:,:]
        x = self.out(output_in_last_timestep)
        x = self.softmax(x)
        return x
# 定義模型
model = LSTM()
# 定義代價(jià)函數(shù)
mse_loss = nn.CrossEntropyLoss()# 交叉熵
# 定義優(yōu)化器
optimizer = optim.Adam(model.parameters(),lr=0.001)# 隨機(jī)梯度下降
# 定義模型訓(xùn)練和測試的方法
def train():
    # 模型的訓(xùn)練狀態(tài)
    model.train()
    for i,data in enumerate(train_loader):
        # 獲得一個(gè)批次的數(shù)據(jù)和標(biāo)簽
        inputs,labels = data
        # 獲得模型預(yù)測結(jié)果(64,10)
        out = model(inputs)
        # 交叉熵代價(jià)函數(shù)out(batch,C:類別的數(shù)量),labels(batch)
        loss = mse_loss(out,labels)
        # 梯度清零
        optimizer.zero_grad()
        # 計(jì)算梯度
        loss.backward()
        # 修改權(quán)值
        optimizer.step()
        
def test():
    # 模型的測試狀態(tài)
    model.eval()
    correct = 0 # 測試集準(zhǔn)確率
    for i,data in enumerate(test_loader):
        # 獲得一個(gè)批次的數(shù)據(jù)和標(biāo)簽
        inputs,labels = data
        # 獲得模型預(yù)測結(jié)果(64,10)
        out = model(inputs)
        # 獲得最大值,以及最大值所在的位置
        _,predicted = torch.max(out,1)
        # 預(yù)測正確的數(shù)量
        correct += (predicted==labels).sum()
    print("Test acc:{0}".format(correct.item()/len(test_data)))
    
    correct = 0
    for i,data in enumerate(train_loader): # 訓(xùn)練集準(zhǔn)確率
        # 獲得一個(gè)批次的數(shù)據(jù)和標(biāo)簽
        inputs,labels = data
        # 獲得模型預(yù)測結(jié)果(64,10)
        out = model(inputs)
        # 獲得最大值,以及最大值所在的位置
        _,predicted = torch.max(out,1)
        # 預(yù)測正確的數(shù)量
        correct += (predicted==labels).sum()
    print("Train acc:{0}".format(correct.item()/len(train_data)))
# 訓(xùn)練
for epoch in range(10):
    print("epoch:",epoch)
    train()
    test()

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • pytorch下使用LSTM神經(jīng)網(wǎng)絡(luò)寫詩實(shí)例
  • 基于pytorch的lstm參數(shù)使用詳解
  • Pytorch 如何實(shí)現(xiàn)LSTM時(shí)間序列預(yù)測
  • Pytorch實(shí)現(xiàn)LSTM和GRU示例

標(biāo)簽:成都 六盤水 山東 江蘇 常州 蘭州 駐馬店 宿遷

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《pytorch 如何使用batch訓(xùn)練lstm網(wǎng)絡(luò)》,本文關(guān)鍵詞  pytorch,如何,使用,batch,訓(xùn)練,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pytorch 如何使用batch訓(xùn)練lstm網(wǎng)絡(luò)》相關(guān)的同類信息!
  • 本頁收集關(guān)于pytorch 如何使用batch訓(xùn)練lstm網(wǎng)絡(luò)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日韩中文字幕一区二区不卡| 精品视频在线看| 国产精品1024在线永久免费| 毛片成人永久免费视频| 国产伦精品一区二区三区无广告 | 久久精品店| 韩国毛片免费| 国产一级强片在线观看| 免费毛片播放| 美国一区二区三区| 四虎影视库国产精品一区| 九九热国产视频| 欧美电影免费看大全| 欧美激情一区二区三区在线| 国产亚洲精品成人a在线| 一级女人毛片人一女人| 一级毛片视频播放| 99久久精品国产国产毛片| 日本在线www| 国产不卡精品一区二区三区| 亚洲第一页色| 欧美1卡一卡二卡三新区| 久久精品欧美一区二区| 国产视频一区二区在线观看| 国产视频久久久| 青青久久精品| 欧美电影免费看大全| 欧美a级大片| 高清一级片| 国产不卡在线看| 精品在线观看一区| 国产成人精品综合在线| 超级乱淫黄漫画免费| 亚洲女初尝黑人巨高清在线观看| 成人免费高清视频| 青青青草视频在线观看| 精品视频免费在线| 精品在线观看国产| 九九免费高清在线观看视频| 可以免费看毛片的网站| 亚洲精品永久一区| 二级片在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 午夜在线影院| 九九干| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产麻豆精品| 欧美激情一区二区三区在线 | 午夜欧美成人久久久久久| 成人高清视频在线观看| 色综合久久天天综合绕观看| 香蕉视频久久| 欧美大片毛片aaa免费看| 国产成人啪精品| 亚洲精品影院| 日日日夜夜操| 四虎论坛| 日韩av东京社区男人的天堂| 精品国产亚一区二区三区| 国产成+人+综合+亚洲不卡| 国产视频一区二区在线播放| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品国产亚洲一区二区三区| 人人干人人草| 亚洲第一色在线| 久久国产精品自由自在| 日韩在线观看视频黄| 黄色福利| 九九免费高清在线观看视频| 国产一区二区精品久久| 成人高清护士在线播放| 九九免费精品视频| 麻豆污视频| 你懂的日韩| 美女被草网站| 国产a视频| 黄色短视频网站| 韩国三级视频网站| 色综合久久天天综合观看| 久久久久久久免费视频| 可以在线看黄的网站| 成人影视在线播放| 欧美一级视频免费观看| 色综合久久久久综合体桃花网| 免费一级生活片| 天天做人人爱夜夜爽2020 | 高清一级毛片一本到免费观看| 免费国产在线观看不卡| 精品国产三级a∨在线观看| 香蕉视频三级| 国产网站在线| 99久久网站| 国产福利免费视频| 青青青草视频在线观看| 欧美日本韩国| 国产视频在线免费观看| 999久久狠狠免费精品| 精品视频一区二区| 黄视频网站免费看| 免费的黄视频| 99热精品一区| 欧美激情一区二区三区视频高清| 午夜在线影院| 可以免费看污视频的网站| 日韩在线观看视频免费| 亚洲第一色在线| 国产精品自拍在线| 免费的黄色小视频| 国产不卡高清在线观看视频| 一级毛片视频免费| 久久久久久久久综合影视网| 日韩男人天堂| 精品国产一区二区三区久 | 亚洲 欧美 91| 成人高清免费| 国产高清视频免费| 四虎影视久久| 国产一级强片在线观看| 欧美爱色| 韩国毛片基地| 国产成人女人在线视频观看 | 香蕉视频三级| 精品国产一区二区三区久| 人人干人人草| a级毛片免费全部播放| 国产伦久视频免费观看 视频| 四虎影视久久久| 欧美一级视频免费| 国产91素人搭讪系列天堂| 日本特黄一级| 中文字幕一区二区三区 精品 | 日本伦理片网站| 99热热久久| 欧美一区二区三区在线观看| 欧美日本韩国| 日韩专区一区| 国产国语在线播放视频| 成人高清视频在线观看| 天天做日日干| 黄视频网站在线看| 日韩av片免费播放| 欧美激情一区二区三区视频| 精品国产一区二区三区国产馆| 国产一区二区精品尤物| a级毛片免费全部播放| 国产国语在线播放视频| 可以免费看毛片的网站| 天天做日日干| 深夜做爰性大片中文| 久久精品大片| 免费国产在线视频| 成人免费网站视频ww| 国产精品自拍亚洲| 可以免费在线看黄的网站| 日韩免费在线观看视频| 国产一区二区高清视频| 91麻豆高清国产在线播放| 精品国产一区二区三区免费 | 精品国产一级毛片| 超级乱淫伦动漫| 九九九国产| 久久久久久久久综合影视网| 国产视频一区二区在线观看| 成人免费网站视频ww| 国产成人精品影视| 麻豆系列 在线视频| 成人免费福利片在线观看| 成人高清免费| 欧美大片一区| 精品国产三级a∨在线观看| 中文字幕一区二区三区精彩视频| 精品视频免费在线| 成人高清护士在线播放| 国产伦精品一区二区三区无广告 | 午夜在线影院| 国产一级强片在线观看| 欧美一级视频免费| 美女被草网站| 一级毛片视频播放| 久久精品大片| 九九九国产| 国产麻豆精品hdvideoss| 久久久久久久久综合影视网| 成人影院久久久久久影院| 国产网站在线| 天天做日日爱夜夜爽| 久久国产精品只做精品| 中文字幕一区二区三区 精品 | 国产视频一区二区在线观看| 美国一区二区三区| 一级女人毛片人一女人| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产亚洲精品成人a在线| 久久久久久久网| 高清一级毛片一本到免费观看| 国产福利免费观看| 欧美激情一区二区三区视频| 亚洲 国产精品 日韩| 精品久久久久久影院免费| 韩国三级视频在线观看|