繁体   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