前面介紹了使用pytorch構造cnn網路,這一節介紹點高階的東西lstm。
以及我之前的一篇中文翻譯部落格:
class
torch.nn.lstm
(*args, **kwargs)
class
rnn(nn.module):
def__init__
(self, input_size, hidden_size, num_layers, num_classes):
super(rnn, self).__init__()
self.hidden_size = hidden_size
self.num_layers = num_layers
self.lstm = nn.lstm(input_size, hidden_size, num_layers,
batch_first=true)
self.fc = nn.linear(hidden_size, num_classes) # 2 for bidirection
defforward
(self, x):
# forward propagate rnn
out, _ = self.lstm(x)
# decode hidden state of last time step
out = self.fc(out[:, -1, :])
return out
rnn = rnn(input_size, hidden_size, num_layers, num_classes)
rnn.cuda()
pytorch中實現lstm是十分方便的,只需要定義輸入維度,隱層維度,rnn個數,以及分類個數就可以了。lstm的輸入狀態如果為空的話,表示預設初始化為0。在mnist上,只需要2個epoch就可以達到97%的正確率。 PyTorch PyTorch高階教程一
前面介紹了pytorch的一些基本用法,從這一節開始介紹pytorch在深度學習中的應用。在開始介紹之前,首先熟悉一下常用的概念和層。class torch.nn.module 舉例 import torch.nn as nn import torch.nn.functional as f clas...
Pytorch pytorch中的LSTM模型
pytorch中lstm的公式表示為 pytorch中lstm的定義如下 輸入資料格式 input seq len,batch,input size h0 num layers num directions,batch,hidden size c0 num layers num directions...
PyTorch PyTorch入門教程五
還是直接看 是如何寫的。從numpy中建立輸入與輸出。import torch import torch.nn as nn import numpy as np import matplotlib.pyplot as plt from torch.autograd import variable h...