日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

pytorch中Parameter函數用法示例_python

作者:鬼道2022 ? 更新時間: 2022-04-10 編程語言

用法介紹

pytorch中的Parameter函數可以對某個張量進行參數化。它可以將不可訓練的張量轉化為可訓練的參數類型,同時將轉化后的張量綁定到模型可訓練參數的列表中,當更新模型的參數時一并將其更新。

torch.nn.parameter.Parameter

  • data (Tensor):表示需要參數化的張量
  • requires_grad (bool, optional):表示是否該張量是否需要梯度,默認值為True

代碼介紹

?pytorch中的Parameter函數具體的代碼示例如下所示

import torch
import torch.nn as nn
class NeuralNetwork(nn.Module):
	def __init__(self, input_dim, output_dim):
		super(NeuralNetwork, self).__init__()
		self.linear = nn.Linear(input_dim, output_dim)
		self.linear.weight = torch.nn.Parameter(torch.zeros(input_dim, output_dim))
		self.linear.bias = torch.nn.Parameter(torch.ones(output_dim))
	def forward(self, input_array):
		output = self.linear(input_array)
		return output
if __name__ == '__main__':
	net = NeuralNetwork(4, 6)
	for param in net.parameters():
		print(param)

代碼的結果如下所示:

?當神經網絡的參數不是用Parameter函數參數化直接賦值給權重參數時,則會報錯,具體的程序

import torch
import torch.nn as nn
class NeuralNetwork(nn.Module):
	def __init__(self, input_dim, output_dim):
		super(NeuralNetwork, self).__init__()
		self.linear = nn.Linear(input_dim, output_dim)
		self.linear.weight = torch.zeros(input_dim, output_dim)
		self.linear.bias = torch.ones(output_dim)
	def forward(self, input_array):
		output = self.linear(input_array)
		return output
if __name__ == '__main__':
	net = NeuralNetwork(4, 6)
	for param in net.parameters():
		print(param)

代碼運行報錯結果如下所示:

原文鏈接:https://guidao.blog.csdn.net/article/details/122351266

欄目分類
最近更新