tjdnbj 2024-01-22 15:59 采纳率: 41.2%
浏览 14
已结题

深度学习线性回归基础问题询问


#引入各种库
import matplotlib_inline
import torch
from IPython import display
from matplotlib import pyplot as plt
import numpy as np
import random
num_inputs=2#特征数为2
num_examples=1000#设训练数据集样本数为1000
true_w=[2,-3,4]#真实权重
true_b=4.2#真实偏差
features=torch.from_numpy(np.random.normal(0,1,(num_examples,num_inputs)))
#y(标签label)=x(特征feature)w(权重)+b(偏差)
labels=true_w[0]*features[:,0]+true_w[1]*features[:,1]+true_b
#+e(噪声项,服从均值为0、标准差为0.01的正态分布)
labels+=torch.from_numpy(np.random.normal(0,0.01,size=labels.size()))
print(features[0],labels[0])
#用矢量图显示
def use_svg_display():
    matplotlib_inline.backend_inline.set_matplotlib_formats('svg')
#设置图的尺寸
def set_figsize(figsize=(3.5,2.5)):
    use_svg_display()
    plt.rcParams['figure.figsize']=figsize
set_figsize()
plt.scatter(features[:,1].numpy(),labels.numpy(),1);



img

想请教一下各位,我根据资料打的代码,因为set_matplotlib_formats不能运行所以改了一下,在pycharm运行后为什么没有显示散点图呢?以及如何将上面的plt作图函数以及use_svg_display函数和set_figsize函数定义在d2lzh_pytorch包里呢?

  • 写回答

2条回答 默认 最新

  • 冰履踏青云 2024-01-22 18:09
    关注
    1. 为什么没有显示散点图?

      在PyCharm或其他IDE编辑器中运行Jupyter Notebook特有的代码时,会出现一些兼容性问题。在这种情况下,matplotlib_inline是专门为Jupyter Notebooks设计的,用于在notebook中内联显示图表。在普通的Python脚本中,你不需要使用matplotlib_inline,而是直接调用plt.show()来显示图表。

      下面是修改后的代码段,可以在PyCharm中运行并显示散点图:

      import torch
      from matplotlib import pyplot as plt
      import numpy as np
      import random
      
      num_inputs = 2
      num_examples = 1000
      true_w = [2, -3.4]
      true_b = 4.2
      features = torch.from_numpy(np.random.normal(0, 1, (num_examples, num_inputs)))
      labels = true_w[0]*features[:, 0] + true_w[1]*features[:, 1] + true_b
      labels += torch.from_numpy(np.random.normal(0, 0.01, size=labels.size()))
      
      print(features[0], labels[0])
      
      def set_figsize(figsize=(3.5, 2.5)):
          plt.rcParams['figure.figsize'] = figsize
      
      set_figsize()
      plt.scatter(features[:, 1].numpy(), labels.numpy(), 1)
      plt.show()  # 注意添加这行代码
      

      在上面的代码中,我已经移除了matplotlib_inline相关的代码,并添加了plt.show()来确保图像能够被渲染和展示。

    2. 如何将函数定义在d2lzh_pytorch包里?

      要将函数定义在某个包中,你首先需要有这个包的源代码。如果d2lzh_pytorch是你创建的包或者你有权限修改它,你可以直接在包的源文件中添加这些函数的定义。

      例如,假设你有一个名为d2lzh_pytorch的包,包结构如下:

      d2lzh_pytorch/
      ├── __init__.py
      └── utils.py
      

      你可以在utils.py文件中定义set_figsize函数:

      # 在 utils.py 文件中
      
      from matplotlib import pyplot as plt
      
      def set_figsize(figsize=(3.5, 2.5)):
          plt.rcParams['figure.figsize'] = figsize
      

      然后,在__init__.py文件中导入这个函数:

      # 在 __init__.py 文件中
      
      from .utils import set_figsize
      

      这样,当你导入d2lzh_pytorch包时,你就可以直接使用set_figsize函数了:

      from d2lzh_pytorch import set_figsize
      

      记住,在将函数添加到包中时,你需要确保它们不与包中现有的函数冲突,并且它们的依赖关系也得到了正确的处理。此外,你可能需要重新安装或更新包才能在你的环境中使用这些新定义的函数。如果d2lzh_pytorch包是第三方提供的,并且你不能直接修改其内容,你可以考虑创建一个本地模块来存放你的自定义函数。

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月19日
  • 专家已采纳回答 2月11日
  • 修改了问题 1月22日
  • 创建了问题 1月22日

悬赏问题

  • ¥15 vscode编译ros找不到头文件,cmake.list文件出问题,如何解决?(语言-c++|操作系统-linux)
  • ¥15 通过AT指令控制esp8266发送信息
  • ¥15 有哪些AI工具提供可以通过代码上传EXCEL文件的API接口,并反馈分析结果
  • ¥15 二维装箱算法、矩形排列算法(相关搜索:二维装箱)
  • ¥20 nrf2401上电之后执行特定任务概率性一直处于最大重发状态
  • ¥15 二分图中俩集合中节点数与连边概率的关系
  • ¥20 wordpress如何限制ip访问频率
  • ¥15 自研小游戏,需要后台服务器存储用户数据关卡配置等数据
  • ¥15 请求解答odoo17外发加工某工序的实操方法
  • ¥20 IDEA ssm项目 跳转页面报错500