基于pytorch写一个三层神经网络,训练数据并导出模型
import torch import torch.nn as nn import torch.optim as optim # 定义三层神经网络 class ThreeLayerNN(nn.Module): def __init__(self, input_size, hidden_size1, hidden_size2, output_size): super(ThreeLayerNN, self).__init__() self.fc1 = nn.Linear(input_size, hidden_size1) self.fc2 = nn.Linear(hidden_size1, hidden_size2) self.fc3 = nn.Linear(hidden_size2, output_size) def forward(self, x): x = torch.relu(self.fc1(x)) x = torch.relu(self.fc2(x)) x = self.fc3(x) return x # 创建模型实例 input_size = 10 # 输入层大小,根据实际情况调整 hidden_size1 = 32 # 第一层隐藏层大小,根据实际情况调整 hidden_size2 = 16 # 第二层隐藏层大小,根据实际情况调整 output_size = 2 # 输出层大小,根据实际情况调整 model = ThreeLayerNN(input_size, hidden_size1, hidden_size2, output_size) # 定义损失函数和优化器 criterion = nn.CrossEntropyLoss() # 根据实际情况选择损失函数 optimizer = optim.Adam(model.parameters(), lr=0.001) # 使用Adam优化器,学习率可调 # 训练数据和标签(此处仅为示例,您需要根据实际情况提供数据) X_train = torch.randn(100, input_size) # 随机生成100个样本作为训练数据,输入维度为input_size Y_train = torch.randint(0, output_size, (100,)) # 随机生成100个标签,输出维度为output_size # 训练模型 num_epochs = 10 # 训练轮数,可根据实际情况调整 for epoch in range(num_epochs): # 前向传播 outputs = model(X_train) loss = criterion(outputs, Y_train) # 反向传播和优化 optimizer.zero_grad() loss.backward() optimizer.step() if (epoch + 1) % 1 == 0: print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch + 1, num_epochs, loss.item())) # 导出模型 torch.save(model.state_dict(), 'model.pth')
============
QQ 3087438119
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2022-12-24 IfcChangeActionEnum
2021-12-24 IfcDistributionControlElementType
2020-12-24 IfcReflectanceMethodEnum
2019-12-24 ubuntu查看cuda、cuDNN版本
2018-12-24 环境变量备份