ニューラル ネットワークは、多くの線形関数と非線形関数で構成される複合関数です。
- カスタムクラスの継承
torch.nn.Module
- カスタム クラスの実装
__init__
とforward()
関数 __init__
ニューラルネットワーク構造を定義するforward()
モデルの順伝播
class NeuralNet(torch.nn.Module):
"""自定义神经网络"""
def __init__(self,input_size,hidden_size):
# 参数为输入维度 和 隐藏层维度
# 调用父类初始化函数
super(NeuralNet,self).__init__()
# 线性模型层 输入 隐藏层
self.linear1 = torch.nn.Linear(input_size,hidden_size)
# relu激活函数层
self.relu = torch.nn.ReLU()
# 线性模型层2 输出1
self.linear2 = torch.nn.Linear(hidden_size,1)
# sigmoid激活函数 分类问题输出0或1
self.sigmoid = torch.nn.Sigmoid()
def forward(self,x):
# 重写正向传播
out = self.linear1(x)
out = self.relu(out)
out = self.linear2(out)
out = self.sigmoid(out)
return out
# 打印模型
model = NeuralNet(10,20)
print(model)
接続層 ➡ ReLU 層 ➡ 接続層 ➡ シグモイド関数層