尝试建立基本的双层神经网络,以锻炼使用torch工具,遇到了问题:
- 在绘制视图的时候,对不同的数据类型进行了运算
- 弹出了警告信息。此警告表明在计算损失时,输入张量和目标张量的形状不匹配,可能会因广播机制产生错误结果。追溯问题,发现遗漏了torch的一个特性,即nn模块中,模型的处理是批量化的,输入的参数中第一个维度(tensor.shape属性)应该是批量数,所以需要使用.unsqueeze(1)人为增添维度。

纠正错误之后得到的结果:



结果并不好,根据损失函数图像的变化,推测模型还并未收敛完全,先尝试放大学习率,之后得到的结果为:


此时发现模型的拟合度大大提高,过拟合程度在可接受范围内,基本确认模型训练完成。
尝试训练三层神经网络,使其分辨出酒的各类特征与其质量之间的关系。
问题:不知为何三维视图表现极其诡异,尝试找出问题所在

解决:不同数据之间的数值间距区别过大,可以尝试更改数据或调整区间


从损失函数上来看,模型拟合良好。
现在尝试把模型转移到CUDA上进行训练。
遇到的问题:
- 处于不同设备上的张量不能进行相互运算
- Matplotlib 在绘图时需要将 CUDA 张量转换为 NumPy 数组,但 CUDA 张量无法直接转换,需要先将其移动到 CPU 上。


可以发现转移到GPU上进行运算后计算速度明显提高。
3013

被折叠的 条评论
为什么被折叠?



