如何解决无法获取RNN的隐藏权重的值
我声明我的RNN为
self.rnn = torch.nn.RNN(input_size=encoding_dim,hidden_size=1,num_layers=1,nonlinearity='relu')
以后
self.rnn.all_weights
# [[Parameter containing:
tensor([[-0.8099,-0.9543,0.1117,0.6221,0.5034,-0.6766,-0.3360,-0.1700,-0.9361,-0.3428]],requires_grad=True),Parameter containing:
tensor([[-0.1929]],Parameter containing:
tensor([0.7881],Parameter containing:
tensor([0.4320],requires_grad=True)]]
self.rnn.all_weights[0][0][0].values
# {RuntimeError}Could not run 'aten::values' with arguments from the 'CPU' backend. 'aten::values' is only available for these backends: [SparseCPU,Autograd,Profiler,Tracer].
很明显,我看到了权重的值,但是无法访问它。 Documentation说我需要指定require_grad = True,但这不起作用。
是否有比self.rnn.all_weights[0][0][0]?
更为优雅和可用的方式
解决方法
使用torch.nn.Module.named_parameters
或torch.nn.Module.parameters
。
levels(cohort$var1)<levels(model$xvar$var1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。