如何解决如何处理叶变量以冻结权重参数
我想修复model.parameters()中值为“0”的权重(模型是神经网络) 这意味着我必须按元素冻结它,所以我在下面编写了一个代码。
在代码中,model.parameters() 将是 'Lparam' 的输入 当我运行代码时,我收到了一个错误,比如“nonetype 没有属性‘zero_()’
当我尝试另一个技巧(如 requires_grad=False
)时,错误提示如下,
“只有叶变量可以使用 requires_grad
”
那么我怎样才能接近叶变量来修复计算图中的零权重? 这是我的代码。
def fix_tensor_data(Lparam):
if isinstance(Lparam,type(None)):
return
elif torch.is_tensor(Lparam):
if Lparam.dim() == 0 and Lparam == 0:
Lparam.grad.zero_()
elif Lparam.dim() == 0 and Lparam != 0:
return
else:
for tp1 in Lparam:
fix_tensor_data(tp1)
else: #enter this section only once when Lparam is a generator
for tp2 in Lparam:
fix_tensor_data(tp2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。