同时使用Pytorch nn.linear函数制作一个简单的RNN。所以首先我初始化了我的权重
self.W_x = nn.Linear(self.input_dim, self.hidden_dim, bias=True)
self.W_h = nn.Linear(self.hidden_dim, self.hidden_dim, bias=True)
现在在主要步骤中,我使用此代码语句使用以前的状态和权重值来获取当前状态的结果
h_t = np.tanh((inp * self.W_x) + (prev_h * self.W_h))
所以在这里我收到 python 错误,如下所示
TypeError: mul(): argument 'other' (position 1) must be Tensor, not Linear
谁能帮我问候他...
您的W_x
和W_h
不是权重,而是线性层,它使用权重和偏差(自bias=True
年起(。它们需要作为函数调用。
此外,您不能将 NumPy 操作与 PyTorch 张量一起使用,但如果将张量转换为 NumPy 数组,则无法通过它们反向传播,因为在计算图中仅跟踪 PyTorch 操作。无论如何,不需要np.tanh
,因为PyTorch也torch.tanh
。
h_t = torch.tanh(self.W_x(inp) + self.W_h(prev_h))