- 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 13: Giới thiệu về Convents - Pytorch Cơ bản
Đăng bởi: Admin | Lượt xem: 1048 | Chuyên mục: AI
Convents là tất cả về việc xây dựng mô hình CNN từ đầu. Kiến trúc mạng sẽ bao gồm sự kết hợp của các bước sau:
- Conv2d
- MaxPool2d
- Rectified Linear Unit
- View
- Linear Layer
Huấn luyện mô hình :
Huấn luyện mô hình là một quá trình giống như các bài toán phân loại ảnh. Đoạn code sau hoàn thành quy trình của mô hình đào tạo trên tập dữ liệu được cung cấp -
def fit(epoch,model,data_loader,phase
= 'training',volatile = False):
if phase == 'training':
model.train()
if phase == 'training':
model.train()
if phase == 'validation':
model.eval()
volatile=True
running_loss = 0.0
running_correct = 0
for batch_idx , (data,target) in enumerate(data_loader):
if is_cuda:
data,target = data.cuda(),target.cuda()
data , target = Variable(data,volatile),Variable(target)
if phase == 'training':
optimizer.zero_grad()
output = model(data)
loss = F.nll_loss(output,target)
running_loss + =
F.nll_loss(output,target,size_average =
False).data[0]
preds = output.data.max(dim = 1,keepdim = True)[1]
running_correct + =
preds.eq(target.data.view_as(preds)).cpu().sum()
if phase == 'training':
loss.backward()
optimizer.step()
loss = running_loss/len(data_loader.dataset)
accuracy = 100. * running_correct/len(data_loader.dataset)
print(f'{phase} loss is {loss:{5}.{2}} and {phase} accuracy is {running_correct}/{len(data_loader.dataset)}{accuracy:{return loss,accuracy}})
Phương pháp này bao gồm các logic khác nhau để training và validation. Có hai lý do chính để sử dụng các mode khác nhau
- Ở chế độ huấn luyện, dropout sẽ loại bỏ một phần trăm giá trị, điều này sẽ không xảy ra trong quá trình validation hoặc testing.
- Tính toán độ dốc và thay đổi giá trị tham số của mô hình, nhưng không cần truyền ngược trong giai đoạn thử nghiệm hoặc xác nhận.
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