1. 重要类
- nn.Module
- nn.flatten
- nn.linear
- nn.relu
- to.device
- torch.cuda.is_available
- nn.softmax
- nn.argmax
- nn.sequential
- nn.conv2d
- add_module
- buffer
- load_state_dict
- named_parameters
- requires_grad
- save_check_points
2. 代码测试
import torch
from torch import nn
from torch.nn import Module
torch.set_printoptions(precision=3)
class MyModelTest(Module):
def __init__(self):
super(MyModelTest, self).__init__()
self.linear_1 = nn.Linear(3, 4)
self.relu = nn.ReLU()
self.linear_2 = nn.Linear(4, 5)
def forward(self, x):
x = self.linear_1(x)
x = self.relu(x)
y = self.linear_2(x)
return y
if __name__ == "__main__":
matrix = torch.arange(3,dtype=torch.float)
my_softmax = nn.Softmax(dim=0)
output = my_softmax(matrix)
print(f"matrix=\n{matrix}")
print(f"output=\n{output}")
my_model = MyModelTest()
for name, param in my_model.named_parameters():
print(f"layer:{name}\n|size:{param.size()}\n|values:{param[:2]}\n")
matrix=
tensor([0., 1., 2.])
output=
tensor([0.090, 0.245, 0.665])
layer:linear_1.weight
|size:torch.Size([4, 3])
|values:tensor([[-0.544, -0.492, 0.190],
[-0.424, -0.068, 0.134]], grad_fn=<SliceBackward0>)
layer:linear_1.bias
|size:torch.Size([4])
|values:tensor([0.295, 0.306], grad_fn=<SliceBackward0>)
layer:linear_2.weight
|size:torch.Size([5, 4])
|values:tensor([[ 0.489, 0.018, 0.314, 0.497],
[ 0.364, -0.455, 0.047, -0.215]], grad_fn=<SliceBackward0>)
layer:linear_2.bias
|size:torch.Size([5])
|values:tensor([-0.027, 0.190], grad_fn=<SliceBackward0>)