簡體   English   中英

Pytorch 復制一層中的神經元

[英]Pytorch copy a neuron in a layer

我正在使用 pytorch 0.3.0。 我試圖有選擇地復制一個神經元和它在同一層內的權重,然后用另一組權重替換原始神經元。 這是我的嘗試:

reshaped_data2 = data2.unsqueeze(0)
new_layer_data = torch.cat([new_layer.data, reshaped_data2], dim=0)
new_layer_data[i] = data1
new_layer.data.copy_(new_layer_data)

首先,我解壓data2使其成為1*X張量而不是0*X 然后我將我的層的張量與沿維度 0 重新整形的data2連接起來。然后我將位於索引i的原始data2替換為data1 最后,我將所有這些復制到我的圖層中。

我得到的錯誤是:

RuntimeError: inconsistent tensor size, expected tensor [10 x 128] and src [11 x 128] to have the same number of elements, but got 1280 and 1408 elements respectively at /Users/soumith/code/builder/wheel/pytorch-src/torch/lib/TH/generic/THTensorCopy.c:86

如果我做一個簡單的任務而不是復制,我會得到

RuntimeError: The expanded size of the tensor (11) must match the existing size (10) at non-singleton dimension 1. at /Users/soumith/code/builder/wheel/pytorch-src/torch/lib/TH/generic/THTensor.c:309

我理解錯誤,但是解決此問題的正確方法是什么?

你試圖更換10x128與張11x128張量,該模型不允許。 new_layer是否用大小(11, 128)初始化? 如果沒有,請嘗試使用所需大小(11, 128)創建新圖層,然后復制/分配new_layer_data

這里的解決方案是創建一個具有正確大小的新模型,並將權重作為默認值傳遞。 沒有找到動態擴展解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM