运行环境
使用环境:python3.8
平台:Windows10
IDE:PyCharm
问题对应的章节
3.2.1节
问题描述
- d2lzh_pytorch模块已经正确导入(如果有小伙伴未能成功导入 d2lzh_pytorch模块,请查看此篇文章:传送门),但按照3.2.1代码未能画出散点图,并且也未报错
问题分析
按照书上的代码跑起来确实不出错,但是在PyCharm中就是不显示绘制出的图像。书上的代码如下:
import torch
from IPython import display
from matplotlib import pyplot as plt
import numpy as np
import random
import sys
sys.path.append("..")
from d2lzh_pytorch import *
num_inputs = 2
num_examples = 1000
true_w = [2, -3.4]
true_b = 4.2
features = torch.randn(num_examples, num_inputs,
dtype=torch.float32)
labels = true_w[0] * features[:, 0] + true_w[1] * features[:, 1] + true_b
labels += torch.tensor(np.random.normal(0, 0.01, size=labels.size()),
dtype=torch.float32)
set_figsize()
plt.scatter(features[:, 1].numpy(), labels.numpy(), 1)
通过Debug函数:plt.scatter(features[:,1].numpy(),labels.numpy(),1)得知
plt.scatter()
在d2lzh_pytorch模块中被注释了一行:plt.show()
在上述代码后面加上plt.show()
即可,最终代码如下:
import torch
from IPython import display
from matplotlib import pyplot as plt
import numpy as np
import random
import sys
sys.path.append("..")
from d2lzh_pytorch import *
num_inputs = 2
num_examples = 1000
true_w = [2, -3.4]
true_b = 4.2
features = torch.randn(num_examples, num_inputs,
dtype=torch.float32)
labels = true_w[0] * features[:, 0] + true_w[1] * features[:, 1] + true_b
labels += torch.tensor(np.random.normal(0, 0.01, size=labels.size()),
dtype=torch.float32)
set_figsize()
plt.scatter(features[:, 1].numpy(), labels.numpy(), 1)
plt.show()
#最后一个plt.show()要加上,再不然看不到绘制出来的散点图,可能是因为书上直接用的在jupyter上运行的,所以他不用加上plt.show()
#也可直接显示,我们在PyCharm中的话就必须加上该命令
最终绘制出来的效果如图: