实验报告
-
姓名:蔡普光
-
学号:*********
神经网络框架
实验一(拟合函数)
实验目的
尝试使用不同的n(神经元层数)和Ti(参数个数)参数定义神经网络。然后在定义域范围内随机采样作为输入,拟合定义域为-pi到pi的目标函数 y = a·cos(bx) + c·sin(dx),a、b、c、d自己设置。然后评估拟合效果,将拟合到的函数可视化并与目标函数对比。
数据准备
train
test
网络设计
net_1
net_2
训练方法
对真实数据标记与模型预测标记之间的误差目标函数最小化利用梯度下降算法更新参数,在模型隐层和卷积池化层的参数利用误差反向传播算法计算它们的更新值。
实验结果
运行实验代码
lr = 1e-3
batch_size = 32
batch = int(train_x.shape[0]/batch_size)
epoch = 2000
net = fc_model()
loss = nn.loss.MSE()
optimizer = nn.optimizer.Adam(lr=lr)
实验结果分析
net_1
net_2
rmse = 0.013692547631695478
mae = 0.009944943695638564
实验二(手写数字识别)
实验目的
选择一个小的图像数据集如人脸or MNIST,使用选择的数据集对该神经网络进行训练和测试。评估测试结果。
数据准备
60000个训练样本
10000个测试样本
网络设计
训练方法
对真实数据标记与模型预测标记之间的误差目标函数最小化利用梯度下降算法更新参数,在模型隐层和卷积池化层的参数利用误差反向传播算法计算它们的更新值。轮询输入每个batch的MNIST训练数据,每次输入更新一次模型参数,最后利用更新好的模型参数在所有测试数据上进行准确率计算。
实验结果
运行实验代码
实验结果分析
总结及体会
挺好玩的。