Tensor _pack_padded_sequence_backward(const Tensor& grad, at::IntArrayRef input_size, const Tensor& _batch_sizes, bool batch_first) {
// 這個函數(shù)是在反向傳播使用的笙什,計(jì)算梯度
// 是將 pack 后的 [梯度], 恢復(fù)成 pack 之前的 [梯度矩陣]
std::vector<int64_t> input_size_after_t = input_size.vec(); // 輸入的 input_size
if (batch_first) { // batch_first is True; batch_first is False;
TORCH_CHECK(input_size.size() >= 2);
std::swap(input_size_after_t[0], input_size_after_t[1]);
}
auto grad_input = at::zeros(input_size_after_t, grad.options()); // 梯度矩陣, 初始化為0
auto batch_sizes_t = _batch_sizes.contiguous(); // batch_size存放的是每一列非0長度 具體示意圖看 我的文章中的 pack 那部分的 batch_size 示意圖垦缅。
checkLongTensor(batch_sizes_t);
int64_t offset = 0;
int64_t max_seq_len = batch_sizes_t.size(0); // 獲取最大長度
int64_t * batch_sizes = batch_sizes_t.data_ptr<int64_t>();
for (int64_t i = 0; i < max_seq_len; ++i) { // 循環(huán)所有sequence 長度
// 填充梯度, grad 是pack 后的梯度,
// grad.slice(0, offset, offset + batch_sizes[i]): 就是獲取pack 中的所有梯度, 0是第0維, 從 offset 到 offset + batch_sizes[i]
// 會被提取出來硼补。 batch_sizes[i] 就是 pack 后的 第i個位置上圾亏,所有非 0 元素的長度姻蚓。具體示意圖看 我的文章中的 pack 那部分的 batch_size 示意圖。
// 所以 grad_input 的計(jì)算結(jié)果就是 在非0的地方井氢,用 pack 后的 梯度填充忿薇,而原先是 0 的的地方裙椭,依然是0, 因?yàn)?使用 zeros 初始化的署浩。
grad_input[i].slice(0, 0, batch_sizes[i]).copy_(grad.slice(0, offset, offset + batch_sizes[i]));
// offset偏移到 下一個
offset += batch_sizes[i];
}
if (batch_first) {
grad_input = grad_input.transpose(0, 1);
}
return grad_input;
}
_pack_padded_sequence_backward
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門迈倍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人婿着,你說我怎么就攤上這事授瘦。” “怎么了竟宋?”我有些...
- 文/不壞的土叔 我叫張陵提完,是天一觀的道長。 經(jīng)常有香客問我丘侠,道長徒欣,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任蜗字,我火速辦了婚禮打肝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挪捕。我一直安慰自己粗梭,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布级零。 她就那樣靜靜地躺著断医,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鉴嗤,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼默垄!你這毒婦竟也來了此虑?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬榮一對情侶失蹤口锭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后介杆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鹃操,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年春哨,在試婚紗的時候發(fā)現(xiàn)自己被綠了荆隘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站便瑟,受9級特大地震影響缆毁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜到涂,卻給世界環(huán)境...
- 文/蒙蒙 一脊框、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧践啄,春花似錦浇雹、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春虎锚,著一層夾襖步出監(jiān)牢的瞬間硫痰,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓柱徙,卻偏偏與公主長得像缓屠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子护侮,可洞房花燭夜當(dāng)晚...