Tensor là gì: Trong lĩnh vực học máy và khoa học dữ liệu, tensor được hiểu là một mảng đa chiều, tương tự như mảng trong lập trình, nhưng với khả năng mô tả dữ liệu trong không gian nhiều chiều hơn.
Tensor 2 Chiều: Đây là loại tensor với hai chiều, thường được biểu diễn dưới dạng ma trận. Mỗi chiều của tensor 2 chiều tương ứng với một hàng hoặc cột trong ma trận, cho phép nó lưu trữ dữ liệu theo dạng bảng hoặc ma trận.
Một tenxơ hai chiều có biểu diễn sau
Hình ảnh vô hướng xám là một ma trận hai chiều gồm các pixel. Cường độ của mỗi pixel được biểu thị bằng một giá trị số nằm trong khoảng từ 0 đến 255 sao cho giá trị cường độ bằng 0 cho biết không có cường độ nào là màu đen hoàn toàn và 255 đại diện cho cường độ tối đa đối với thứ gì đó hoàn toàn là màu trắng. Chúng tôi có thể lưu trữ lưới hai chiều này của các giá trị.
Tầm Quan Trọng của Tensor 2 Chiều trong Học Máy và Khoa Học Dữ Liệu
Trong Học Máy: Tensor 2 chiều có vai trò cốt lõi trong việc biểu diễn và xử lý dữ liệu. Trong học máy, chúng thường được sử dụng để biểu diễn các tập dữ liệu, nơi mỗi hàng có thể đại diện cho một mẫu và mỗi cột biểu thị một tính năng.
Phân Tích Dữ Liệu: Trong khoa học dữ liệu, tensor 2 chiều hữu ích trong việc phân tích và xử lý số liệu, từ việc tính toán thống kê đến việc xây dựng các mô hình phức tạp.
Ứng Dụng Đa Dạng: Tensor 2 chiều có mặt trong nhiều ứng dụng, từ nhận dạng hình ảnh, xử lý ngôn ngữ tự nhiên, đến các hệ thống khuyến nghị và dự báo. Chúng giúp đơn giản hóa và chuẩn hóa cách mà dữ liệu được xử lý và phân tích.
Cấu Trúc và Đặc Điểm của Tensor 2 Chiều
Cấu Trúc Cơ Bản của Tensor 2 Chiều
Biểu Diễn Dưới Dạng Ma Trận: Tensor 2 chiều thường được biểu diễn dưới dạng ma trận, với cấu trúc bao gồm hàng và cột. Mỗi phần tử trong ma trận này được xác định bởi một cặp chỉ số, thường là (i, j), nơi i biểu thị hàng và j biểu thị cột.
Lưu Trữ Dữ Liệu: Trong ma trận, dữ liệu có thể là các giá trị số, phân loại, hoặc thậm chí là các đối tượng phức tạp hơn. Ví dụ, trong hình ảnh xám, mỗi phần tử có thể đại diện cho một điểm ảnh với giá trị cường độ sáng tương ứng.
So Sánh với Tensor 1 Chiều và Tensor Đa Chiều
Tensor 1 Chiều (Vector): Khác với tensor 2 chiều, tensor 1 chiều chỉ có một chiều duy nhất và thường được biểu diễn dưới dạng vector. Mỗi phần tử trong tensor 1 chiều chỉ được xác định bởi một chỉ số. Ví dụ, dữ liệu về giá cổ phiếu theo thời gian có thể được lưu trữ trong một tensor 1 chiều.
Tensor Đa Chiều: Khi so sánh với tensor đa chiều, tensor 2 chiều là một trường hợp đặc biệt với chỉ hai chiều. Tensor đa chiều có thể bao gồm ba chiều trở lên, ví dụ như trong xử lý hình ảnh màu, nơi một hình ảnh được biểu diễn bởi ba kênh màu (RGB) và mỗi kênh là một tensor 2 chiều.
Sự Linh Hoạt và Ứng Dụng: Mặc dù tensor 2 chiều kém linh hoạt hơn so với tensor đa chiều về mặt biểu diễn dữ liệu phức tạp, nhưng chúng dễ dàng được sử dụng và hiểu hơn, đặc biệt trong các tác vụ liên quan đến đại số tuyến tính, như nhân ma trận, phân tích thành phần chính (PCA), và các phép toán tương tự.
Làm Việc với Tensor 2 Chiều trong Các Thư Viện Học Máy
Tạo tensor hai chiều
Để tạo tensor hai chiều, trước tiên bạn phải tạo tensor một chiều bằng cách sử dụng phương thức layout () của ngọn đuốc. Phương thức này chứa hai tham số kiểu số nguyên. Phương pháp này sắp xếp các phần tử trong tensor theo các tham số đã cho. Khi tensor một chiều của bạn được tạo, thì bước tiếp theo của chúng ta là thay đổi chế độ xem của nó ở dạng hai chiều và lưu trữ chế độ xem này ở dạng biến hai chiều.
Hãy xem một ví dụ về việc tạo một tensor hai chiều
import torch x=torch.arange(18) y=x.view(3, 2, 3) y y[1,1,1]
Đầu ra:
Chú ý: Để kiểm tra thứ nguyên của tensor ta phải sử dụng phương thức dim () của tensor.
import torch x=torch.arange(0,9) x y=x.view(3,3) y x.dim() y.dim()
Đầu ra:
Truy cập các phần tử tensor hai chiều
Hãy xem ví dụ về tensor hai chiều để hiểu cách truy cập một phần tử cụ thể từ tensor hai chiều bằng cách sử dụng chỉ mục.
Ví dụ
import torch x=torch.arange(0,9) x y=x.view(3,3) y y[0,2]
Đầu ra:
Nhân Tensors
Phép nhân được thực hiện theo cách tương tự như phép nhân số liệu. Phép nhân tensor được thực hiện với việc nhân hàng tương ứng với cột tương ứng. Nhân căng đóng một vai trò quan trọng trong mô hình học sâu. Độ căng có thể là một chiều, hai chiều, ba chiều, v.v. Phép nhân tensor chỉ được thực hiện với kích thước tương thích.
Hãy xem một ví dụ về Phép nhân Tensor
import torch mat_a=torch.tensor([1,3,5,7,9,2,4,6,8]) mat_a=mat_a.view(3,3) mat_b=torch.tensor([1,3,5,7,9,2,4,6,8]) mat_b=mat_b.view(3,3) mat_a mat_b torch.matmul(mat_a,mat_b)# We can also usemat_a @ mat_b
Đầu ra:
Tensor ba chiều
Teor ba chiều được tạo ra với sự trợ giúp của phương thức view (). Một tenxơ ba chiều có cấu trúc như sau
Truy cập phần tử từ 3D- Tensor
Việc truy cập các phần tử từ 3D-tensor khá dễ dàng. Nó sẽ được thực hiện bằng cách sử dụng chỉ mục.
Ví dụ
import torch x=torch.arange(18) y=x.view(3, 2, 3) y y[1,1,1]
Đầu ra:
Slicing vào three-dimensional tensor
Các lát phân đoạn rất giống với cách chúng ta cắt một tensor một chiều. Cắt một tensor có nghĩa là cắt các phần tử của tensor thành một tensor mới, hoặc chúng ta có thể nói cắt là một quá trình tạo ra một tensor mới bằng cách chia một tensor.
Ví dụ
Để chúng ta có một tensor ba chiều chứa các phần tử từ 0 đến 17 và chúng ta muốn cắt tensor từ 6 đến 11.
import torch x=torch.arange(18) y=x.view(3,2,3) y y[1, 0:2, 0:3] # can also apply y[1, :, :]
Đầu ra: