这段代码实现了一个简单的神经网络模型,使用PyTorch框架进行训练和测试。下面是对代码的详细解读:
导入所需的库:numpy、pandas、torch等,并导入matplotlib库用于绘图。
生成随机数据:使用numpy生成4个随机整数特征(npx1, npx2, npx3, npx4),并计算目标变量npy。将特征和目标变量合并为npxy。
将数据保存到Excel和CSV文件中,分别命名为’data.xlsx’和’data.csv’。
从Excel和CSV文件中读取数据并转换为torch.tensor对象。
划分训练集和测试集:将数据划分为前900行作为训练集(xtrain, ytrain)和后100行作为测试集(xtest, ytest)。
定义神经网络模型:使用torch.nn.Module类创建Net类,在初始化方法中定义了一个多层感知机模型,包含4个线性层以及ReLU激活函数。
实例化模型,并将其移动到GPU上(如果可用)。
定义损失函数和优化器:使用均方误差(MSELoss)作为损失函数,Adam优化器进行参数优化。
创建空列表用于存储训练过程中的损失值,并启用交互式绘图功能。
进行训练:使用for循环迭代训练过程,每个epoch中进行以下操作:
- 将训练数据移动到GPU上;
- 前向传播计算模型输出;
- 计算损失并清零优化器的梯度;
- 反向传播计算梯度并更新参数;
- 将训练集和测试集移动到GPU上,并在无梯度计算下进行测试集损失的计算。
绘制损失曲线图:使用matplotlib库将训练集和测试集的损失值作为y轴,epoch数作为x轴进行可视化展示。
内容由零声教学AI助手提供,问题来源于学员提问