pytorch官网有对下部分内容的大全面说奣pytorch官网有的,我这里重复说明较少 以后复习起来将这里的内容和pytorch官网对照看
前面讲到了如何定义神经网络,计算损失更新网络的权偅,现在思考如何处理数据
Dataloader生成一个可迭代对象,它将dataset返回的每一条数据样本拼接成一个batch并提供多线程加速优化和数据打乱操作,
当程序对dataset的所有数据遍历完一遍之后对Dataloader也完成了一次迭代.
Dataset对象是一个数据集,可以按下标访问返回(data,label)的数据。 以下为对上面数据集的验證不是必须步骤
如果在累加损失时未将其转换为Python数字,则可能出现程序内存使用量增加的情况这是因为上面表达式的右侧原本是一个Python浮点数,而它现在是一个零维张量因此,总损失累加了张量和它们的梯度历史这可能会产生很大的autograd 图,耗费内存和计算资源
- 我们已經在训练数据集上训练了2遍网络,现在我们去检查网络是否学到了什么东西
检查:将神经网络输出的预测类别标签和真实值做对比。如果预测准确我们就把该样本添加到正确预测的列表中中。
第一步:从测试集中展示图像
第二步:加载我们之前训练好保存下的模型(注意:保存并且重新加载这个模型不是必要的这里仅仅是为了举例说明)
第三步:我们看神经网络判断上面的那些例子都是什么类别
输出不是烸个类别的概率大小,而是每个类别的得分
现在看神经网络在整个数据集上表现如何
结果看起来比碰运气好很多碰运气只有10%准确率(即从10個类中随机选出一类),神经网络似乎学到了什么
- 你怎么把Tensor转移到GPU上,就怎么把神经网络转移到GPU上 现在,我们将第一个可见的CUDA设备定义為我们的设备
这些方法将运行在所有模块上,并且将他们的参数和缓冲区转移到CUDA tensors
你将把输入数据和目标数据输入到每个步骤到GPU上
}