计算机的错误计算(五十)

avatar
作者
筋斗云
阅读量:0

摘要  扩展了计算机的错误计算(四十九)中的代码。同时发现,误差也“扩展”了。

       下面是代码:

import torch  # 设置随机种子 torch.manual_seed(0)  # 创建张量并移动到GPU W1 = torch.randn(5, 3) * 10 W1 = W1.to('cuda') X1 = torch.randn(3, 5) * 10 X1 = X1.to('cuda')  # 计算第一个矩阵乘法 Y1 = torch.mm(W1, X1)  # 在GPU上执行归一化操作 min_val1 = Y1.min() max_val1 = Y1.max() Y1_normalized = (Y1 - min_val1) / (max_val1 - min_val1)  # 应用tanh函数 torch_tanh1 = torch.tanh(Y1_normalized)  # 创建第二个张量并移动到GPU Z1 = torch.randn(5, 4) * 10 Z1 = Z1.to('cuda')  # 计算第二个矩阵乘法 R_tanh1 = torch.mm(torch_tanh1, Z1)  # 继续构建更多层 W2 = torch.randn(4, 6) * 10 W2 = W2.to('cuda') X2 = torch.randn(6, 4) * 10 X2 = X2.to('cuda')  # 计算第三个矩阵乘法 Y2 = torch.mm(W2, X2)  # 在GPU上执行归一化操作 min_val2 = Y2.min() max_val2 = Y2.max() Y2_normalized = (Y2 - min_val2) / (max_val2 - min_val2)  # 应用tanh函数 torch_tanh2 = torch.tanh(Y2_normalized)  # 创建另一个张量并移动到GPU Z2 = torch.randn(4, 7) * 10 Z2 = Z2.to('cuda')  # 计算第四个矩阵乘法 R_tanh2 = torch.mm(torch_tanh2, Z2)

输出为:

       经检验,矩阵R_tanh2中,含有两位错误数字的元素共有15个,具体位置如下:[0,0]、[0,1]、[0,3]、[0,4]、[0,5]、[1,0]、[2,1]、[2,2]、[2,3]、[2,4]、[2,5]、[3,1]、[3,2]、[3,5]、[3,6]。另外,含有三位错误数字的元素有2个,分别是[3,0]和[3,3]。

       这样,含有两位以上错误数字的元素共有17个。占比为 17/(4*7)=17/28=60.7%.

       现在有个问题:随着代码的增加,误差是否会越来越大?会大到有的元素没有了正确有效数字吗?误差有上限吗?

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!