Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để truy cập và sửa đổi các giá trị của Tensor trong PyTorch?

Chúng tôi sử dụng Lập chỉ mục Slicing để truy cập các giá trị của tensor. Lập chỉ mục được sử dụng để truy cập giá trị của một phần tử đơn lẻ của tensor, trong khi Slicing được sử dụng để truy cập các giá trị của một chuỗi các phần tử.

Chúng tôi sử dụng toán tử gán để sửa đổi các giá trị của tensor. Việc chỉ định / s giá trị mới bằng toán tử gán sẽ sửa đổi tensor với / s giá trị mới.

Các bước

  • Nhập các thư viện cần thiết. Ở đây, thư viện bắt buộc là torch .

  • Xác định PyTorch tensor.

  • Truy cập giá trị của một phần tử tại chỉ mục cụ thể bằng cách sử dụng lập chỉ mục hoặc truy cập các giá trị của chuỗi các phần tử bằng cách sử dụng cắt lát .

  • Sửa đổi các giá trị đã truy cập bằng các giá trị mới bằng cách sử dụng gán nhà điều hành.

  • Cuối cùng, in tensor để kiểm tra xem tensor được sửa đổi với các giá trị mới.

Ví dụ 1

# Python program to access and modify values of a tensor in PyTorch
# Import the libraries
import torch

# Define PyTorch Tensor
a = torch.Tensor([[3, 5],[1, 2],[5, 7]])
print("a:\n",a)

# Access a value at index [1,0]-> 2nd row, 1st Col using indexing
b = a[1,0]
print("a[1,0]:\n", b)

# Other indexing method to access value
c = a[1][0]
print("a[1][0]:\n",c)

# Modifying the value 1 with new value 9
# assignment operator is used to modify with new value
a[1,0] = 9
print("tensor 'a' after modifying value at a[1,0]:")
print("a:\n",a)

Đầu ra

a:
tensor([[3., 5.],
         [1., 2.],
         [5., 7.]])
a[1,0]:
   tensor(1.)
a[1][0]:
   tensor(1.)
tensor 'a' after modifying value at a[1,0]:
a:
tensor([[3., 5.],
         [9., 2.],
         [5., 7.]])

Ví dụ 2

# Python program to access and modify values of a tensor in PyTorch
# Import necessary libraries
import torch

# Define PyTorch Tensor
a = torch.Tensor([[3, 5],[1, 2],[5, 7]])
print("a:\n", a)

# Access all values of 2nd row using slicing
b = a[1]
print("a[1]:\n", a[1])

# Access all values of 1st and 2nd rows
b = a[0:2]
print("a[0:2]:\n" , a[0:2])

# Access all values of 2nd col
c = a[:,1]
print("a[:,1]:\n", a[:,1])

# Access values from first two rows but 2nd col
print("a[0:2, 1]:\n", a[0:2, 1])

# assignment operator is used to modify with new value
# Modifying the values of 2nd row
a[1] = torch.Tensor([9, 9])
print("After modifying a[1]:\n", a)

# Modify values of first two rows but 2nd col
a[0:2, 1] = torch.Tensor([4, 4])
print("After modifying a[0:2, 1]:\n", a)

Đầu ra

a:
tensor([[3., 5.],
         [1., 2.],
         [5., 7.]])
a[1]:
   tensor([1., 2.])
a[0:2]:
   tensor([[3., 5.],
         [1., 2.]])
a[:,1]:
   tensor([5., 2., 7.])
a[0:2, 1]:
   tensor([5., 2.])
After modifying a[1]:
   tensor([[3., 5.],
            [9., 9.],
            [5., 7.]])
After modifying a[0:2, 1]:
tensor([[3., 4.],
         [9., 4.],
         [5., 7.]])