计算机的错误计算(四十一)

摘要  本节将分析一个深度学习中的“Hello World”程序的计算精度问题。该程序利用 PyTorch 库创建了一个权重矩阵 W 和一个特征矩阵 X,然后通过矩阵乘法计算得到结果矩阵 Y。通过本节及后续的分析,将展示影响深度学习效果的一个潜在因素。

       直接贴图如下代码:

       为了分析结果与输入之间的关系,两个输入矩阵的元素均输出至少 16 位的结果。具体内容如下:

       另外,由于使用的是单精度计算,因此结果只考虑前 8 位有效数字:

       现在我们考察 Y[1,1]、Y[1,2]、Y[1,4]、Y[2,4] 4个结果的精度。

       首先,从上面最后一张图片知,Python 8位有效数字的 4个输出结果为

Y[1,1]=-\textcolor{blue}{9.67255}\textcolor{red}{31}\,,\\ Y[1,2]=\textcolor{blue}{29.9277}\textcolor{red}{76}\,,\\ Y[1,4]=-\textcolor{blue}{6.10477}\textcolor{red}{88}\,, \quad\quad\quad\quad\quad\quad (1)\\ Y[2,4]=\textcolor{blue}{6.88700}\textcolor{red}{58}\,.

然后,用第二张图片中数据重新计算该 4个结果(不妨利用 ISReal 可信软件计算):

Y[1,1]=\sum\limits_{i=0}^{i=2} W[1,i]\times X[i,1]\\=5.684312820434570\times(-5.663175106048584)\\-10.845223426818848\times(14.565025329589844)\\-13.985954284667969\times(-12.904350280761719)\\= -0.9672559676279887977507621049881e1\\ \approx -0.\textcolor{blue}{967255}\textcolor{red}{97}e1\,, \\ Y[1,2]=\sum\limits_{i=0}^{i=2} W[1,i]\times X[i,2]\\ =5.684312820434570\times3.731146335601807\\-10.845223426818848\times9.398098945617676\\-13.985954284667969\times(-7.911026954650879)\\ =0.29927781430327739526315927505493e2\\ \approx 0.\textcolor{blue}{299277}\textcolor{red}{81}e2\,,\\ Y[1,4]=\sum\limits_{i=0}^{i=2} W[1,i]\times X[i,4]\\ =5.684312820434570\times(-15.091076850891113)\\-10.845223426818848\times1.918694257736206\\-13.985954284667969\times(-7.184800624847412)\\ =-0.610477644701745051588923484087e1\\ \approx -0.\textcolor{blue}{610477}\textcolor{red}{64}e1\,,\\ Y[2,4]=\sum\limits_{i=0}^{i=2} W[2,i]\times X[i,4]\\=4.033468246459961\times(-15.091076850891113)\\+8.380263328552246\times1.918694257736206\\-7.192575931549072\times(-7.184800624847412)\\=0.6887007891110439727727621793747e1\\ \approx 0.\textcolor{blue}{688700}\textcolor{red}{79}e1\,.

将通过重新计算得到的新结果与(1)中数据进行比对,从而可知,(1)中 4个结果均具有 2位错误数字。错误位数的相对误差均为 2/8=25%.  该误差率的占比不少于 4/(5*5)=16%. 

       各位看官,您有何感想?

  • 15
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值