怎么查看网络模型参数
时间: 2023-07-05 18:06:46 浏览: 61
要查看网络模型参数,你需要使用框架提供的函数或方法。下面以 PyTorch 为例,介绍两种查看网络模型参数的方法:
方法一:使用 model.parameters()
在 PyTorch 中,模型的所有参数都可以通过 `model.parameters()` 函数获取。你可以将其转化为一个列表,然后遍历查看每个参数的值,示例代码如下:
```python
import torch
# 定义一个简单的神经网络模型
class Net(torch.nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = torch.nn.Conv2d(3, 6, 5)
self.pool = torch.nn.MaxPool2d(2, 2)
self.conv2 = torch.nn.Conv2d(6, 16, 5)
self.fc1 = torch.nn.Linear(16 * 5 * 5, 120)
self.fc2 = torch.nn.Linear(120, 84)
self.fc3 = torch.nn.Linear(84, 10)
def forward(self, x):
x = self.pool(torch.nn.functional.relu(self.conv1(x)))
x = self.pool(torch.nn.functional.relu(self.conv2(x)))
x = x.view(-1, 16 * 5 * 5)
x = torch.nn.functional.relu(self.fc1(x))
x = torch.nn.functional.relu(self.fc2(x))
x = self.fc3(x)
return x
# 初始化模型
net = Net()
# 打印模型参数
for name, param in net.named_parameters():
if param.requires_grad:
print(name, param.data)
```
方法二:使用 model.state_dict()
另一种查看网络模型参数的方法是,使用 `model.state_dict()` 函数。该函数返回一个 OrderedDict,其中每个 key 是层的名称,每个 value 是该层的参数张量。你可以通过遍历字典,查看每个参数的值,示例代码如下:
```python
import torch
# 定义一个简单的神经网络模型
class Net(torch.nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = torch.nn.Conv2d(3, 6, 5)
self.pool = torch.nn.MaxPool2d(2, 2)
self.conv2 = torch.nn.Conv2d(6, 16, 5)
self.fc1 = torch.nn.Linear(16 * 5 * 5, 120)
self.fc2 = torch.nn.Linear(120, 84)
self.fc3 = torch.nn.Linear(84, 10)
def forward(self, x):
x = self.pool(torch.nn.functional.relu(self.conv1(x)))
x = self.pool(torch.nn.functional.relu(self.conv2(x)))
x = x.view(-1, 16 * 5 * 5)
x = torch.nn.functional.relu(self.fc1(x))
x = torch.nn.functional.relu(self.fc2(x))
x = self.fc3(x)
return x
# 初始化模型
net = Net()
# 打印模型参数
for name, param in net.state_dict().items():
print(name, param)
```
以上两种方法,你可以选择其中一种来查看 PyTorch 模型的参数。