對于Numpy數據類型
shape和size都是屬于Numpy的屬性
arr.shape
將返回一個包含兩個元素的元組,例如(m, n)
,其中m
表示數組的行數,n
表示數組的列數。arr.size
將返回數組中元素的總數。
?舉例:
輸入:
import numpy as np# 創建一個 3x4 的二維數組
arr = np.array([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]])# 使用 shape 獲取數組的維度信息
arr_shape = arr.shape# 使用 size 獲取數組中元素的總數
arr_size = arr.sizeprint("Array Shape:", arr_shape) # 輸出數組的形狀,對應 (行數, 列數)
print("Array Size:", arr_size) # 輸出數組中元素的總數
?輸出:
Array Shape: (3, 4)
Array Size: 12
對于Tensor數據類型
size是屬于Tensor的方法,shape是屬于Tensor的屬性
tensor.shape
?是沿用了Numpy的使用習慣tensor.size
?()是專屬于tensor的返回數據形狀的方法
所以上面兩個返回的是一樣的,只不過一個是屬性一個是方法(屬性調用的時候不用加(),但方法調用時需要加())
舉例:
輸入:
import torch
a =torch.tensor([[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]])
print('a.shape')
print(a.shape)
print('a.size()')
print(a.size())
輸出:
a.shape
torch.Size([3, 4])
a.size()
torch.Size([3, 4]
Numpy的size屬性和Tensor的size()方法有什么關系
這兩者之間并沒有直接的關系。它們只是在不同的背景下為了類似的目的而命名相似