Please enable JavaScript.
Coggle requires JavaScript to display documents.
PyTorch Core - Coggle Diagram
PyTorch Core
Basic operations
torch.matmul(tensor, tensor) = @ = torch.mm: thực hiện phép dot product
torch.mul(tensor, tensor): nhân từng phần tử tương ứng của hai tensor lại với nhau, phải có cùng kích thước hoặc broadcast được với nhau (tức là PyTorch tự động mở rộng kích thước nhỏ hơn để khớp)
torch.sub(tensor, tensor): trừ từng phần tử tương ứng của hai tensor lại với nhau, phải có cùng kích thước hoặc broadcast được với nhau (tức là PyTorch tự động mở rộng kích thước nhỏ hơn để khớp)
torch.div(tensor, tensor): chia từng phần tử tương ứng của hai tensor lại với nhau, phải có cùng kích thước hoặc broadcast được với nhau (tức là PyTorch tự động mở rộng kích thước nhỏ hơn để khớp)
torch.add(tensor, tensor): cộng từng phần tử tương ứng của hai tensor lại với nhau, phải có cùng kích thước hoặc broadcast được với nhau (tức là PyTorch tự động mở rộng kích thước nhỏ hơn để khớp)
Khi thực hiện phép tính trên 2 tensor có số lượng phần tử mỗi chiều trên 2 tensor là khác nhau, torch tự động mở rộng chiều ở mỗi tensor ra thành chiều có số lượng phần tử lớn nhất
Shape transformation
-
tensor.transpose(x1, x2, ...,xn)
tensor.reshape(x1, x2, ..., xn): thay đổi hình dạng tensor theo ý muốn, tổng số phần tử phải giữ nguyên (x1 x2 ... * xn = tổng số phần tử), Pytorch sẽ cố gắng không copy dữ liệu
tensor.view(x1, x2, ...,xn): giống reshape, nhưng yêu cầu dữ liệu liên tiếp trong bộ nhớ, sẽ không copy dữ liệu, chỉ tạo một cửa sổ nhìn khác
-
Stacking
torch.stack((tensor_1, tensor_2, ..., tensor_n), dim = x)
torch.vstack((tensor_1, tensor_2,...., tensor_n))
torch.hstack((tensor_1, tensor_2,...., tensor_n))
-
-
tensor.permute(dim_1, dim_2,...., dim_n): sắp xếp mọi chiều của tensor theo thứ tự mới
-
-
-
Create
torch.rand(x1, x2, .., xn): tạo ngẫu nhiên các giá trị với số lượng phần tử mỗi chiều ứng với xn.
-
-
torch.zeros(x1, x2, ..., xn): tạo tensor với các giá trị 0 tại mỗi chiều
-
torch.ones(x1, x2, ...., xn): tạo tensor với các giả trị 1 tại mỗi chiều
-
torch.arange(start = x0, end = x1, step = x2): tạo tensor có các giá trị nằm trong khoảng start và end, mỗi giá trị cách nhau step
torch.zeros_like(input = tensor) (ones_like): tạo tensor với các giá trị 0 (hoặc 1) và shape giống với input tensor
-
-
-
torch.randn(quantity): tạo một tensor chứa các số ngẫu nhiên tuân theo phân bố chuẩn với mean = 0 và variance = 1
Aggregation
tensor.min(), tensor.max(), tensor.mean() (mean cần dữ liệu tensor dạng float32), tensor.sum()
tensor.argmin(), tensor.argmax()
- Automatic differentiation (Autograd)
-
-
-
-
no_grad() context
-
Tiết kiệm bộ nhớ, không lưu graph
-
- Neural Network Layer (nn.Module)
-
-
nn.Module là class cơ bản để xây dựng tất cả các neural network layer trong torch, mỗi layer/module đều kết thừa từ nn.Module
-
-
-
-
-
-
-
-
-
Model save/load()
torch.save(model.state_dict(), MODEL_SAVE_PATH)
-
-
pathlib
path = Path('directory'), path.mkdir()
-
-
-
-
torch.isclose(tensor1, tensor2, x)