【PYG】 PyTorch中size方法和属性

在 PyTorch 中,size 方法和属性用于获取张量的维度信息。下面是它们的用法和区别:

  1. node_features.size

    • 这是一个属性(attribute ),返回一个 torch.Size 对象,表示张量的维度。这是不可调用的,因此不能直接用于获取特定维度的大小。

    • 示例:

      python 复制代码
      size_attr = node_features.size
      print(size_attr)  # 输出: torch.Size([3, 4])
  2. node_features.size()

    • 这是一个方法(method),返回一个 torch.Size 对象,本质上是一个包含张量维度的元组(tuple)。这个方法是可调用的,返回的结果与 size 属性相同。

    • 示例:

      python 复制代码
      size_method = node_features.size()
      print(size_method)  # 输出: torch.Size([3, 4])
  3. node_features.size(1)

    • 这是一个方法调用,它接受一个整数参数(维度索引)并返回该维度的大小。这个方法用于直接获取特定维度的大小。

    • This is a method call that takes an integer argument (the dimension index) and returns the size of that specific dimension. This is useful for obtaining the size of a particular dimension directly.

    • 示例:

      python 复制代码
      size_dim1 = node_features.size(1)
      print(size_dim1)  # 输出: 4

总结

  • node_features.size :属性,返回维度信息作为 torch.Size 对象。Attribute that returns the dimensions as a torch.Size object.
  • node_features.size() :方法,返回维度信息作为 torch.Size 对象(与属性相同)。
  • node_features.size(dimension):方法,返回指定维度的大小。 Method that returns the size of the specified dimension.

示例使用

下面是一个完整的示例来展示用法:

python 复制代码
import torch

node_features = torch.tensor([[1.0, 2.0, 3.0, 4.0],
                              [2.0, 3.0, 4.0, 5.0],
                              [3.0, 4.0, 5.0, 6.0]])

# 使用 size 属性
size_attr = node_features.size
print(f"使用 size 属性: {size_attr}")  # 输出: 使用 size 属性: torch.Size([3, 4])

# 使用 size 方法(无参数)
size_method = node_features.size()
print(f"使用 size 方法: {size_method}")  # 输出: 使用 size 方法: torch.Size([3, 4])

# 使用 size 方法(带维度参数)
size_dim1 = node_features.size(1)
print(f"维度 1 的大小: {size_dim1}")  # 输出: 维度 1 的大小: 4

为什么能输入 1

node_features.size(1) 中,参数 1 表示你想获取张量的第 1 个维度(从 0 开始计数)。对于这个特定的张量 node_features,它的形状是 [3, 4],其中:

  • 0 维度的大小是 3(行数)
  • 1 维度的大小是 4(列数)

因此,node_features.size(1) 返回 4,因为第 1 个维度有 4 个元素。

使用 size 属性: <built-in method size of Tensor object at 0x7f0254cef400>
使用 size 方法: torch.Size([3, 4])
维度 1 的大小: 4
  • 打印type(size_attr)得到<class 'builtin_function_or_method'>
  • 打印type(size_method)得到<class 'torch.Size'>
  • 如果调用不存在的维度会报错
    size_dim1 = node_features.size(2)
    IndexError: Dimension out of range (expected to be in range of [-2, 1], but got 2)
相关推荐
sp_wxf15 分钟前
Lambda表达式
开发语言·python
DogDaoDao16 分钟前
【预备理论知识——2】深度学习:线性代数概述
人工智能·深度学习·线性代数
牛哥带你学代码17 分钟前
交叠型双重差分法
人工智能·深度学习·机器学习
学步_技术24 分钟前
自动驾驶系列—线控系统:驱动自动驾驶的核心技术解读与应用指南
人工智能·机器学习·自动驾驶·线控系统·转向系统
jmoych33 分钟前
AI正悄然地影响着企业数字化转型
人工智能
蜡笔小新星35 分钟前
Python Kivy库学习路线
开发语言·网络·经验分享·python·学习
说私域35 分钟前
社群团购中的用户黏性价值:以开源小程序多商户AI智能名片商城源码为例
人工智能·小程序
篝火悟者1 小时前
问题-python-运行报错-SyntaxError: Non-UTF-8 code starting with ‘\xd5‘ in file 汉字编码问题
开发语言·python
hakesashou1 小时前
python如何比较字符串
linux·开发语言·python
深度学习实战训练营1 小时前
基于keras的停车场车位识别
人工智能·深度学习·keras