使用torch,并使用定义函数形式,定义一个ANN的模型,要求输入为12个参数,输出为8个参数
时间: 2024-09-07 22:03:56 浏览: 42
在PyTorch中,我们可以使用`nn.Module`和自定义函数的形式来定义一个全连接人工神经网络(Multilayer Perceptron, MLP)。这里我们构建一个简单的基本MLP模型,包含线性和激活函数:
```python
import torch
import torch.nn as nn
class CustomMLP(nn.Module):
def __init__(self, input_dim=12, hidden_units=[64, 32], output_dim=8):
"""
:param input_dim: 输入维度
:param hidden_units: 隐藏层的神经元数量列表
:param output_dim: 输出维度
"""
super(CustomMLP, self).__init__()
layers = []
layers.append(nn.Linear(input_dim, hidden_units[0])) # 输入层到第一个隐藏层
layers.extend([nn.ReLU() for _ in range(len(hidden_units) - 1)]) # 添加ReLU激活函数
layers.append(nn.Linear(hidden_units[-1], output_dim)) # 最后一层从隐藏层到输出层
self.net = nn.Sequential(*layers) # 将所有层堆叠成一个序列
def forward(self, x):
"""
:param x: 输入张量
:return: 输出张量
"""
return self.net(x)
# 创建并实例化模型
model = CustomMLP()
input_tensor = torch.randn(10, 12) # (batch_size, input_dim)
output = model(input_tensor)
```
在这个例子中,我们定义了一个有两个隐藏层的MLP,第一层有64个神经元,第二层有32个神经元,最后一层对应8个输出。每个隐藏层之后都接有一个ReLU激活函数。
阅读全文