咦?第五十八周筆記去哪了?
lstm from torch.nn scratch, 這裡
主要的設計思路
class
mylstmcell
(nn.module)
:def
__init__
(self, input_size, hidden_size)
:super
(mylstmcell, self)
.__init__(
) self.gate = nn.linear(input_size + hidden_size,3)
self.cell = nn.linear(input_size + hidden_size, hidden_size)
defforward
(self, x, state)
: h, c = state
x = torch.cat(
[x, h]
, dim=1)
gate = self.gate(x)
gate_i = torch.sigmoid(gate[:,
0]).view(-1
,1) gate_f = torch.sigmoid(gate[:,
1]).view(-1
,1) gate_o = torch.sigmoid(gate[:,
2]).view(-1
,1) c = torch.tanh(self.cell(x)
) c = gate_i * c + gate_f * c
h = gate_o * torch.tanh(c)
return h, c
class
mylstm
(nn.module)
:def
__init__
(self, opt)
:super
(mylstm, self)
.__init__(
) self.input_size = opt.input_size
self.hidden_size = opt.hidden_size
self.vocab_size = opt.vocab_size
self.embedding_dim = opt.embedding_dim
self.core = mylstmcell(self.input_size, self.hidden_size)
self.embed = nn.embedding(self.vocab_size+
1, self.embedding_dim)
self.max_length = opt.max_length
self.num_classes = opt.num_classes
self.output = nn.linear(self.hidden_size, self.num_classes)
definit_weight
(self, bs)
: weight =
next
(self.parameters())
return weight.new_zeros(bs, self.hidden_size)
, weight.new_zeros(bs, self.hidden_size)
defforward
(self, x)
: state = self.init_weight(x.shape[0]
) outputs =
for i in
range
(self.max_length)
: xt = x[
:, i]
if torch.
sum(xt)==0
:break
xt = self.embed(xt)
state = self.core(xt, state)0]
.unsqueeze(2)
) x = self.output(torch.mean(torch.cat(outputs,dim=2)
,dim=2)
)return x
隨便找了個外賣評價做**,準確率到達83.71%,作為對比,詞袋模型的準確率是73%
一些問題測了手上所有的grid attention的模型表現,**取自這裡
和可考的官方結果進行對比
複習了一些以前的內容
重新整理到了這裡
整理到了這裡
開學第一周,有點迷,總是發呆
整理**
所有模型的度量結果
學習linux的第五十九天
redis 是乙個開源 bsd許可 記憶體儲存的資料結構伺服器,可用作資料庫,快取記憶體和訊息佇列 redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 無序集合 及 zset sorted set 有序集合 內建複製 lua指令碼 lru收回 事務以及不同級別磁碟...
hihor日記 hiho一下 第五十九周
給定乙個單執行緒程式執行的記錄,包含有每個函式啟動和結束的時間。判定該份記錄是否錯誤,主要的錯誤包含 記錄中的時間不是嚴格遞增的 乙個函式的結束時間比啟動時間更早 記錄中乙個函式有不對應的啟動操作start或結束操作end,比如出現了start卻沒有對應的end,或出現了end卻沒有出現start。...
解題思路 leetcode第五十九題 螺旋矩陣
給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 解題思路 本題採用迴圈賦值的方法,其關鍵之處如何對提前建立的列表進行螺旋遍歷並賦值,本題通過設定兩個標誌位實現遍歷的過程中轉向,程式設定a,b,...