You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么在Python/PyTorch中需要两次import导入torchvision相关模块?

PyTorch torchvision 导入写法说明

两种导入写法均符合Python语法规范,添加第二行导入的核心作用是简化后续代码书写,降低冗余。

两种导入方式的具体区别如下:

  • 仅使用import torchvision时的调用规则
    第一行导入已经将整个torchvision包引入当前运行环境,确实包含transforms、datasets等全部子模块,但调用时必须书写完整的模块路径:
    # 必须携带torchvision前缀才能正常调用子模块
    img_transform = torchvision.transforms.ToTensor()
    mnist_data = torchvision.datasets.MNIST(root="./dataset", train=True, download=True)
    
  • 新增from torchvision import transforms, datasets后的调用规则
    这行代码的作用是将transforms、datasets两个子模块单独引入当前代码的命名空间,后续调用时可以省略父模块前缀,写法更简洁:
    # 无需携带torchvision前缀即可直接调用
    img_transform = transforms.ToTensor()
    mnist_data = datasets.MNIST(root="./dataset", train=True, download=True)
    

补充说明:该导入规则是Python的通用语法,并非PyTorch框架独有。你可以根据实际开发场景选择导入方式:如果代码中仅少量调用torchvision的子模块,可只保留第一行导入;如果频繁调用这两个子模块,添加第二行导入可以大幅减少重复代码。如果当前代码中存在和transforms、datasets重名的变量/模块,建议保留完整前缀避免命名冲突。


内容的提问来源于stack exchange,提问作者Ross

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:36:04