1. Trang chủ
  2. » Luận Văn - Báo Cáo

ỨNG DỤNG MẠNG NORON VIẾT ỨNG DỤNG PHÂN LỚP HÌNH ẢNH

46 84 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 3,24 MB

Nội dung

­ Deep Learning là một thuật toán dựa trên một số ý tưởng não bộ tới việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu. Deep Learning được ứng dụng nhiều trong nhận diện hình ảnh, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên. ­ Hiện nay rất nhiều các bài toán nhận dạng, phân loại sử dụng deep learning để giải quyết do deep learning có thể giải quyết các bài toán với số lượng, kích thước đầu vào lớn với hiệu năng cũng như độ chính xác vượt trội so với các phương pháp phân lớp truyền thống. ­ Convolutional Neutal Network (CNNs – Mạng nơron tích chập) là một trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được nhưng hệ thống thông minh với độ chính xác cao. Trong bài báo cáo này, chúng em tập trung nghiên cứu về “Mạng Nơron nhân tạo” cũng như ý tưởng phân lớp ảnh dựa trên mô hình CNNs (Image Classification). Và áp dụng để xây dựng ứng dụng phân lớp ảnh “bird”, “cat”, “frog” và “horse”. 2. Cấu trúc đồ án ­ Chương 1: Tìm hiểu ngôn ngữ lập trình Python ­ Chương 2: Tìm hiểu mạng nơron và thư viện Pytorch ­ Chương 3: Xây dựng ứng dụng

TRƯỜNG ĐẠI HỌC TRẦN ĐẠI NGHĨA KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MÔN HỌC MÔN HỌC: MẠNG NƠ-RON ĐỀ TÀI: TÌM HIỂU NGƠN NGỮ PYTHON, THƯ VIỆN PYTORCH VÀ VIẾT ỨNG DỤNG PHÂN LỚP HÌNH ẢNH (BIRD, CAT, FROG, HORSE) TP HỒ CHÍ MINH, THÁNG 08 NĂM 2020 TRƯỜNG ĐẠI HỌC TRẦN ĐẠI NGHĨA KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MÔN HỌC MÔN HỌC: MẠNG NƠ-RON ĐỀ TÀI: TÌM HIỂU NGƠN NGỮ PYTHON, THƯ VIỆN PYTORCH VÀ VIẾT ỨNG DỤNG PHÂN LỚP HÌNH ẢNH (BIRD, CAT, FROG, HORSE) Nhóm báo cáo: Nguyễn Tiểu Phụng Huỳnh Đức Anh Tuấn Giảng viên hướng dẫn: Th.s Ngô Thanh Tú TP HỒ CHÍ MINH, THÁNG 08 NĂM 2020 LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành đến thầy cô giảng viên khoa Công nghệ thông tin trường Đại học Trần Đại Nghĩa Và đặc biệt thầy Thạc sĩ Ngô Thanh Tú – giảng viên học phần “Mạng Nơ-ron” tận tình hướng dẫn, truyền đạt kiến thức kỹ cần thiết để em hồn thành đồ án môn học Tuy nhiên, trình tìm hiểu nghiên cứu đề tài, kiến thức chuyên ngành thời gian hạn chế em cịn nhiều thiếu sót q trình tìm hiểu, thực hiện, đánh giá trình bày đề tài Rất mong quan tâm, góp ý thầy cô giảng viên môn để đồ án mơn học em hồn chỉnh Xin chân thành cảm ơn! MỞ ĐẦU Lý chọn đề tài - Deep Learning thuật toán dựa số ý tưởng não tới việc tiếp thu nhiều tầng biểu đạt, cụ thể lẫn trừu tượng, qua làm rõ nghĩa loại liệu Deep Learning ứng dụng nhiều nhận diện hình ảnh, nhận diện giọng nói, xử lý ngơn ngữ tự nhiên - Hiện nhiều toán nhận dạng, phân loại sử dụng deep learning để giải deep learning giải tốn với số lượng, kích thước đầu vào lớn với hiệu độ xác vượt trội so với phương pháp phân lớp truyền thống - Convolutional Neutal Network (CNNs – Mạng nơ-ron tích chập) mơ hình Deep Learning tiên tiến giúp cho xây dựng hệ thống thông minh với độ xác cao Trong báo cáo này, chúng em tập trung nghiên cứu “Mạng Nơ-ron nhân tạo” ý tưởng phân lớp ảnh dựa mô hình CNNs (Image Classification) Và áp dụng để xây dựng ứng dụng phân lớp ảnh “bird”, “cat”, “frog” “horse” Cấu trúc đồ án - Chương 1: Tìm hiểu ngơn ngữ lập trình Python - Chương 2: Tìm hiểu mạng nơ-ron thư viện Pytorch - Chương 3: Xây dựng ứng dụng MỤC LỤC CHƯƠNG 1: TÌM HIỂU NGƠN NGỮ LẬP TRÌNH PYTHON 1.1 Giới thiệu ngơn ngữ lập trình Python 1.1.1 Lịch sử phát triển 1.1.2 Phiên 1.1.3 Một số điểm khác phiên 3x 2x 1.1.4 Đặc điểm Python 1.2 Hướng dẫn cài đặt Anaconda/Miniconda 1.2.1 Giới thiệu Ananconda/Miniconda cài đặt 1.2.2 Download Anaconda/Miniconda hướng dẫn cài đặt 1.2.3 Hướng dẫn cài thêm thư viện conda 14 CHƯƠNG 2: TÌM HIỂU MẠNG NƠ RON VÀ THƯ VIỆN PYTORCH 18 2.1 Giới thiệu mạng nơ-ron 18 2.1.1 Giới thiệu Machine learning 18 2.1.2 Lịch sử phát triển mạng nơ-ron nhân tạo – ANN 18 2.1.3 Lịch sử phát triển Deeplearning 19 2.1.4 Một số thư viện Deeplearning nổ tiếng 20 2.1.5 Các khái niệm mạng nơron 22 2.2 Giới thiệu thư viện Pytorch 24 2.2.1 Lịch sử phát triển phiên Pytorch 24 2.2.2 Một số ưu điểm pytorch 25 2.2.3 Ví dụ mẫu Pytorch Examples 26 2.2.4 Một số hỗ trợ cho người học Pytorch 28 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG 30 3.1 Nêu toán 30 3.2 Chuẩn bị liệu 31 3.3 Phương pháp lựa chọn đề tài 33 3.4 Giao diện chức ứng dụng 34 3.5 Đánh giá 40 3.6 Hướng phát triển toán 40 TÀI LIỆU THAM KHẢO 41 CHƯƠNG 1: TÌM HIỂU NGƠN NGỮ LẬP TRÌNH PYTHON 1.1 Giới thiệu ngơn ngữ lập trình Python 1.1.1 Lịch sử phát triển - Ngôn ngữ Python Guido van Rossum tạo phát hành lần vào tháng năm 1991 - Python giống Perl, Ruby, Scheme, Smalltalk Tcl - Python phát triển dự án mã mở tổ chức phi lợi nhuận Python Software Foundation quản lý - Python phát triển để chạy Unix Nhưng theo thời gian, "bành trướng" sang hệ điều hành từ MS-DOS đến MAC OS, OS/2, Windows, Linux số điều hành khác thuộc họ Unix - Python ngơn ngữ bậc cao (high-level), có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người học lập trình Cho phép người sử dụng viết mã với số lần gõ phím tối thiểu - Python ngôn ngữ phổ biến giới - Python đặt theo tên rắn thần Python thần thoại Hy Lạp đâu Rossum fan sê-ri chương trình hài cuối năm 1970, tên “Python” lấy từ tên phần sê-ri “Monty Python’s Flying Circus” 1.1.2 Phiên Bảng 1.1 phiên Python phát hành Phiên Python 1.0 (bản phát hành chuẩn đầu tiên) Python 1.6 (Phiên 1.x cuối cùng) Ngày phát hành 01/1994 05/09/2000 Bảng 1.1 phiên Python phát hành Phiên Ngày phát hành Python 2.0 (Giới thiệu list comprehension) Python 2.7 (Phiên 2.x cuối cùng) 16/10/2000 03/07/2010 Python 3.0 (Loại bỏ cấu trúc mô-đun trùng lặp) 03/12/2008 Python 3.3 2012 Python 3.5 (hỗ trợ cho byte bytearray) 13/09/2015 Python 3.6(cải tiến đáng kể thư viện tiêu chuẩn) 23/12/2016 Python 3.7(Cải tiến mơ hình liệu Python) 27/06/2018 Python 3.8 (Được bổ sung nhiều tính mới) 14/10/2019 Python 3.9 (Loại bỏ hết tính dùng tương thích ngược 27/04/2020 2x) 1.1.3 Một số điểm khác phiên 3x 2x 1.1.3.1 Sự khác biệt hàm PRINT - Ở 2x print ‘a’,’b’ dễ gây hiểu lầm với kiểu liệu Tuple ta truyền nhiều đối số vào parantheses - Ở phiên 3x hàm print dùng () Python 2x Python 3x print 'Hello, World!' print ('Hello, World!') print ('Hello, World!') print 'Hello, World!' >>> Hello, Word! >>> Hello, World! >>> Hello, Word! print 'Hello, World! SyntaxError: invalid syntax 1.1.3.2 Toán tử DIV - Ở Python 2x toán tử chia (/) có ý nghĩa mơ hồ cho đối số ‘số’: trả sàn kết tốn học phép chia đối số kiểu ints long, trả xấp xỉ hợp lý kết phân chia đối số kiểu float phức Vấn đề lại giải 3x Python 2x Python 3x print '3 / =', / print ('3 / =', / 2) print '3 // =', // print ('3 // =', // 2) print '3 / 2.0 =', / 2.0 print ('3 / 2.0 =', / 2.0) print '3 // 2.0 =', // 2.0 print ('3 // 2.0 =', // 2.0) >>>3 / = >>>3 / = 1.5 >>>3 // = >>>3 // = >>>3 / 2.0 = 1.5 >>>3 / 2.0 = 1.5 >>>3 // 2.0 = 1.0 >>>3 // 2.0 = 1.0 Kiểu STRING mặc định 1.1.3.3 - Python 2x có kiểu str () thuộc kiểu ASCII, riêng biệt unicode (), khơng có kiểu byte - Python 3x có chuỗi Unicode (utf-8) lớp byte: byte bytearrays Python 2x Python 3x print type(unicode(‘Chuỗi giống print('strings are now utf-8 kiểu str Python 3’)) \u03BCnico\u0394é!') >>> >>> strings are now utf-8 μnicoΔé! print type(b‘Đây giống chuỗi print(sys.version,' has', type(b' bytes for str khơng có kiểu byte 2x’) storing data')) >>> >>> 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 22:39:24) [MSC v.1916 32 bit (Intel)] has print '2 chuỗi này' + b'giống nhau' print('note that we cannot add a string' >>> chuỗi giống + b'bytes for data') >>> Traceback (most recent call last): File "", line 1, in TypeError: can only concatenate str (not "bytes") to str 1.1.3.4 Loại bỏ hàm XRANGE() 3x - Việc sử dụng xrange() phổ biến Python 2.x để tạo đối tượng lặp lại - Ở python 3x loại bỏ hàm XRANGE() thay vào sử dụng hàm RANGE() Nhưng hàm range() 3x tích hợp chế ‘lazy avaluation’ chế giải phóng nhớ chiếm dụng xrange() (bản 2x) 1.1.3.5 Xử lý ngoại lệ - Trong Python 3x yêu cầu xử dụng từ khóa as để xử lý ngoại lệ Python 2x Python 3x try: let_us_cause_a_NameError except NameError, err: print err, ' > our error message' >>>name 'let_us_cause_a_NameError' is not defined > our error message try: let_us_cause_a_NameError except NameError as err: print(err, ' > our error message') >>>name 'let_us_cause_a_NameError' is not defined > our error message 1.1.3.6 Banker’s Round - Python áp dụng cách làm tròn số thập phân chuẩn kết hịa (0,5) chữ số có nghĩa cuối Bây giờ, Python 3, số thập phân làm trịn đến số chẵn gần - Mặc dù bất tiện cho tính di động mã, cho cách làm trịn tốt so với làm trịn cũ tránh thiên vị số lượng lớn Python 2x Python 3x round(15.5) round(15.5) >>> 16.0 >>>16 round(16.5) round(16.5) >>>17.0 >>>16 1.1.3.7 Ordering Comparisons - Python 3.0 đơn giản hóa quy tắc tốn tử so sánh: - Các toán tử so sánh thứ tự ( < , = , > ) đưa ngoại lệ TypeError tốn hạng khơng có thứ tự tự nhiên có ý nghĩa Do đó, biểu thức < '' , > Khơng có len

Ngày đăng: 29/08/2020, 04:02

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w