self.date = torch.randn(self.label.shape[0])为什么会提示TypeError: zeros_like(): argument 'input' (position 1) must be Tensor, not int
时间: 2024-04-12 13:32:34 浏览: 30
错误提示 "TypeError: zeros_like(): argument 'input' (position 1) must be Tensor, not int" 意味着在调用 zeros_like() 函数时,传入的参数应为张量(Tensor),而不是整数。
根据你提供的代码,错误可能出现在以下这行代码上:
```python
expectGainData = torch.zeros_like(inputDataSet.shape[0])
```
在这里,你试图使用 inputDataSet 的形状(shape)来创建一个具有相同形状的全零张量。然而,inputDataSet.shape[0] 返回的是一个整数,而不是张量。
要解决这个问题,你可以将 torch.zeros_like() 函数的参数改为一个张量对象,而不是整数。你可以考虑使用 torch.zeros() 函数来创建一个具有相同形状的全零张量。
以下是修改后的代码示例:
```python
expectGainData = torch.zeros(inputDataSet.shape[0])
```
通过使用 torch.zeros() 函数,你可以创建一个与 inputDataSet 具有相同形状的全零张量,从而避免了 TypeError 异常。
相关问题
def __init__(self): super(Net, self).__init__() self.conv1 = torch.nn.Conv2d(1, 10, kernel_size=5) self.conv1 = torch.nn.Conv2d(10, 20, kernel_size=5) self.pooling = torch.nn.MaxPool2d(2) self.Fc = torch.nn.Linear(320, 10)有什么错误码
这段代码存在一个错误:第二个卷积层的定义应该是`self.conv2 = torch.nn.Conv2d(10, 20, kernel_size=5)`而不是`self.conv1 = torch.nn.Conv2d(10, 20, kernel_size=5)`,因为第一个卷积层已经使用了`self.conv1`的名称。这会导致第二个卷积层覆盖掉第一个卷积层的定义,导致模型结构发生错误。正确的代码如下:
```
class Net(torch.nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = torch.nn.Conv2d(1, 10, kernel_size=5)
self.conv2 = torch.nn.Conv2d(10, 20, kernel_size=5)
self.pooling = torch.nn.MaxPool2d(2)
self.Fc = torch.nn.Linear(320, 10)
```
这段代码哪里错了 class my_BiGRU(torch.nn.Module): def __init__(self, input_size, hidden_size, num_layers, output_size, gru_dropout): super(my_BiGRU, self).__init__() self.input_size = input_size self.hidden_size = hidden_size self.num_layers = num_layers self.output_size = output_size self.gru_dropout = gru_dropout self.gru = torch.nn.GRU(input_size, hidden_size, num_layers=num_layers, batch_first=True, bidirectional=True) self.fc = torch.nn.Linear(hidden_size * 2, output_size) def _setup_BiGRU_layers(self): self.BiGRU_layers = my_BiGRU(input_size=self.args.capsule_out_dim, output_size=self.args.apsule_out_features, hidden_size=self.args.BiGRU_hiddensize, num_layers=self.args.BiGRU_layers, gru_dropout=self.args.BiGRU_dropout, )
这段代码存在两个问题:
1.函数 `_setup_BiGRU_layers` 中的代码应该是在类的构造函数 `__init__` 中进行初始化,而不是在另外一个函数中进行初始化。
2.在调用 `my_BiGRU` 类时,参数名称有误,应该将 `apsule_out_features` 改为 `capsule_out_features`。
改正后的代码如下所示:
```
class my_BiGRU(torch.nn.Module):
def __init__(self, input_size, hidden_size, num_layers, output_size, gru_dropout, capsule_out_features):
super(my_BiGRU, self).__init__()
self.input_size = input_size
self.hidden_size = hidden_size
self.num_layers = num_layers
self.output_size = output_size
self.gru_dropout = gru_dropout
self.gru = torch.nn.GRU(input_size, hidden_size, num_layers=num_layers, batch_first=True, bidirectional=True)
self.fc = torch.nn.Linear(hidden_size * 2, output_size)
self.BiGRU_layers = my_BiGRU(input_size=self.input_size,
output_size=capsule_out_features,
hidden_size=self.hidden_size,
num_layers=self.num_layers,
gru_dropout=self.gru_dropout,
)
```
注意:这里假设 `capsule_out_dim` 和 `args` 都已经在代码中被定义好了。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)