- Bài 1: Giới thiệu
- Bài 2: Cài đặt
- Bài 3: Nền tảng toán học của Neural Networks
- Bài 4: Mạng nơron cơ bản
- Bài 5: Tổng quan về machine learning và deep learning
- Bài 6: Triển khai mạng thần kinh đầu tiên
- Bài 7: Functional Blocks và Terminologies
- Bài 8: Loading Data
- Bài 9: Linear Regression ( Hồi quy tuyến tính )
- Bài 10: Convolutional Neural Network ( CNN )
- Bài 11: Recurrent Neural Network ( RNN )
- Bài 12: Tập dữ liệu ( Dataset )
- Bài 13: Giới thiệu về Convents
- Bài 14: Huấn luyện Convent bằng Scratch
- Bài 15: Feature Extraction trong Convents ( Trích xuất đặc trưng )
- Bài 16: Visualization Convents
- Bài 17: Sequence Processing với Convents
- Bài 18: Word Embedding
- Bài 19: Recursive Neural Networks
Bài 14: Huấn luyện Convent bằng Scratch - Pytorch Cơ bản
Đăng bởi: Admin | Lượt xem: 1017 | Chuyên mục: AI
Trong bài này ta sẽ tập trung vào việc tạo Convent từ đầu. Tạo mạng nơ-ron mẫu hoặc quy ước tương ứng với torch.
Bước 1 :
Tạo một lớp cần thiết với các tham số tương ứng. Các tham số bao gồm trọng số với giá trị ngẫu nhiên.
class Neural_Network(nn.Module):
def __init__(self, ):
super(Neural_Network, self).__init__()
self.inputSize = 2
self.outputSize = 1
self.hiddenSize = 3
# weights
self.W1 = torch.randn(self.inputSize,
self.hiddenSize) # 3 X 2 tensor
self.W2 = torch.randn(self.hiddenSize, self.outputSize) # 3 X 1 tensor
Bước 2
Tạo một hàm chuyển tiếp nguồn cấp dữ liệu với các hàm sigmoid.
def forward(self, X):
self.z = torch.matmul(X, self.W1) # 3 X 3 ".dot"
does not broadcast in PyTorch
self.z2 = self.sigmoid(self.z) # activation function
self.z3 = torch.matmul(self.z2, self.W2)
o = self.sigmoid(self.z3) # final activation
function
return o
def sigmoid(self, s):
return 1 / (1 + torch.exp(-s))
def sigmoidPrime(self, s):
# derivative of sigmoid
return s * (1 - s)
def backward(self, X, y, o):
self.o_error = y - o # error in output
self.o_delta = self.o_error * self.sigmoidPrime(o) # derivative of sig to error
self.z2_error = torch.matmul(self.o_delta, torch.t(self.W2))
self.z2_delta = self.z2_error * self.sigmoidPrime(self.z2)
self.W1 + = torch.matmul(torch.t(X), self.z2_delta)
self.W2 + = torch.matmul(torch.t(self.z2), self.o_delta)
Bước 3
Tạo mô hình huấn luyện và dự đoán như sau :
def train(self, X, y):
# forward + backward pass for training
o = self.forward(X)
self.backward(X, y, o)
def saveWeights(self, model):
# Implement PyTorch internal storage functions
torch.save(model, "NN")
# you can reload model with all the weights and so forth with:
# torch.load("NN")
def predict(self):
print ("Predicted data based on trained weights: ")
print ("Input (scaled): \n" + str(xPredicted))
print ("Output: \n" + str(self.forward(xPredicted)))
Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!
- Bài 1: Giới thiệu
- Bài 2: Cài đặt
- Bài 3: Nền tảng toán học của Neural Networks
- Bài 4: Mạng nơron cơ bản
- Bài 5: Tổng quan về machine learning và deep learning
- Bài 6: Triển khai mạng thần kinh đầu tiên
- Bài 7: Functional Blocks và Terminologies
- Bài 8: Loading Data
- Bài 9: Linear Regression ( Hồi quy tuyến tính )
- Bài 10: Convolutional Neural Network ( CNN )
- Bài 11: Recurrent Neural Network ( RNN )
- Bài 12: Tập dữ liệu ( Dataset )
- Bài 13: Giới thiệu về Convents
- Bài 14: Huấn luyện Convent bằng Scratch
- Bài 15: Feature Extraction trong Convents ( Trích xuất đặc trưng )
- Bài 16: Visualization Convents
- Bài 17: Sequence Processing với Convents
- Bài 18: Word Embedding
- Bài 19: Recursive Neural Networks