Vì vậy, đồ án tìm hi u và nghiên ểcứu về thư viện TensorFlow được l a chự ọn với mục đích tìm hiểu, nâng cao ki n thế ức và kỹ năng về các công cụ và tính năng của thư viện này.. Lý do c
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PH H CHÍ MINH Ố Ồ
BỘ MÔN TRÍ TUỆ NHÂN T O Ạ
BÁO CÁO ĐỒ ÁN
ĐỀ TÀI 2: TÌM HIỂU VÀ NGHIÊN C ỨU
VỀ THƯ VIỆN TENSORFLOW
ng d n:
Giảng viên hướ ẫ ThS Nguyễn Đình Hiển
Nhóm sinh viên thực hiện: Cat GPT
Thành ph H ố ồ Chí Minh, tháng 4 năm 2023
Trang 2Nhóm sinh viên thực hiện: Cat GPT Trang ii
LỜI CẢM ƠN
Đầu tiên, em xin g i l i c ử ờ ảm ơn chân thành đến Trường Đạ i H ọc Sư P hạm
Thành Ph H ố ồ Chí Minh đã đưa môn học Trí Tuệ Nhân Tạo vào trương trình
giảng d ạy Đặ c bi t, em xin g i l i c ệ ử ờ ảm ơn sâu sắc đến gi ng viên b môn - ả ộ thầy ThS Nguyễn Đình Hiển đã dạ y d ỗ, truy ền đạ t nh ng ki n th c quý báu cho em ữ ế ứ trong su t th i gian h ố ờ ọc tập v a qua Trong th i gian tham gia l p h c Trí Tu ừ ờ ớ ọ ệ Nhân T o c a th ạ ủ ầy, em đã có thêm cho mình nhiều kiến thức bổ ích, tinh thần
học tập hi u qu ệ ả, nghiêm túc Đây chắc chắn s là nh ng ki n th c quý báu, là ẽ ữ ế ứ hành trang để em có th v ể ững bướ c sau này
Bộ mô này là môn h ọc thú vị, vô cùng b ích và có tính th c t ổ ự ế cao Đảm bảo
cung c ấp đủ kiế n th c, g n li n v i nhu c u th c ti ứ ắ ề ớ ầ ự ễn c a sinh viên Tuy nhiên, ủ
do v n ki n th c còn nhi u h n ch và kh ố ế ứ ề ạ ế ả năng tiế p thu th c t còn nhi u b ự ế ề ỡ
ngỡ Mặc dù em đã cố gắng h t s ế ức nhưng chắ c ch ắn bài báo cáo khó có th ể
tránh kh i nh ng thi u sót và nhi u ch ỏ ữ ế ề ỗ còn chưa chính xác, kính mong thầy/cô xem xét và góp ý để bài tiểu luận c ủa em đượ c hoàn thi ện hơn.
Trang 3Nhóm sinh viên thực hiện: Cat GPT Trang iii
MỤC LỤC
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC TÀI LI U THAM KH O Ệ Ả iv LỜI MỞ ĐẦU v
CHƯƠNG I GIỚI THIỆU VỀ TENSORFLOW 1
1 TensorFlow là gì? 1
2 Lịch sử ra đời 1
3 N n t ng TensorFlow và khề ả ả năng hoạt động 2
4 T o sao nên s d ng TensorFlow? 3 ạ ử ụ 5 TensorFlow với các thư viện và framework khác 4
CHƯƠNG II TỔNG QUAN VỀ CÁC CHỨC NĂNG CỦA TENSORFLOW 4
1 Các Component c a TensorFlow 4 ủ 2 Danh sách các thu t toán nậ ổi bật được hỗ trợ ở b i TensorFlow 5
3 Gi i thi u các hớ ệ ỗ trợ ủa TensorFlow c 6
4 Ví d cách s dụ ử ụng TensorFlow đơn giản 7
5 Các option tải dữ liệu vào TensorFlow 9
CHƯƠNG III Những tài liệu lập trình đáng xem và tìm hiểu nhất về Tensorflow 12
1 Learn TensorFlow 2.0: Implement Machine Learning and Deep Learning Models with Python 12
2 Advanced Deep Learning with TensorFlow 2 and Keras 13
3 Tensorflow in 1 Day 13
4 TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low -Power Microcontrollers 14
5 Natural Language Processing with TensorFlow: Teach language to machines using Python’s deep learning library 15
CHƯƠNG IV Tổng kết về Tensorflow 15
Trang 4Nhóm sinh viên thực hiện: Cat GPT Trang iv
DANH MỤ C TÀI LI U THAM KH O Ệ Ả
TensorFlow là gì? Giải thích v ề thư viện máy h c | Th gi i thông tin (infoworld.com)ọ ế ớGiới thiệu v TensorFlow | Machine Learning | Google Dề evelopers
Tensorflow là gì? 10 tài li u hệ ọc tensorflow đầy đủ nhất | TopDev
TensorFlow Explained: Components, Functions, Supported Platforms & Advantages | upGrad blog
Kiến thức cơ bản v TensorFlow | TensorFlow Core ề
Trang 5Nhóm sinh viên thực hiện: Cat GPT Trang v
LỜI MỞ ĐẦU
Trong bối cảnh phát tri n nhanh chóng c a công ngh thông tin, trí tu nhân t o và hể ủ ệ ệ ạ ọc sâu đang trở thành những lĩnh vực đư c quan tâm và phát triển rất nhiều trong th i ợ ờgian gần đây Tuy nhiên, để có thể ứ ng d ng và phát tri n các mô hình AI và Deep ụ ểLearning thì cần s d ng nhử ụ ững thư viện hỗ trợ ốt nhất Trong đó, TensorFlow t - một thư viện mã nguồn mở được phát triển bởi Google, là một trong những thư viện được
sử d ng rụ ộng rãi và đánh giá cao trong lĩnh vực này Vì vậy, đồ án tìm hi u và nghiên ểcứu về thư viện TensorFlow được l a chự ọn với mục đích tìm hiểu, nâng cao ki n thế ức
và kỹ năng về các công cụ và tính năng của thư viện này
Lý do chúng em chọn đề tài này để tìm hi u và nghiên c u là vì nó là mể ứ ột trong những thư viện AI và Deep Learning được đánh giá cao về tính năng và hiệu suất
TensorFlow cung cấp cho người dùng những công cụ, tính năng và hỗ trợ l p trình tậ ốt, giúp người dùng dễ dàng triển khai và tối ưu hóa các mô hình AI và Deep Learning Ngoài ra, TensorFlow còn được cộng đồng sử dụng và phát triển rất nhiều, đảm bảo rằng người dùng sẽ luôn được cập nhật với những tính năng và công nghệ ớ m i nhất của thư viện này
Trong quá trình thực hi n tìm hi u v ệ ể ề thư viện TensorFlow, đồ án đã tập trung vào các nội dung chính như: kiến trúc và c u trúc c a TensorFlow, cách thấ ủ ức triển khai mô hình, các thu t toán Deep Learning ph biậ ổ ến được hỗ trợ trong TensorFlow, cách thức tối ưu hóa mô hình và tích hợp TensorFlow với các thư viện khác
M sột ố h n ch cạ ế ủa đề tài là đầu tiên, đây là một đề tài r t rộng và có nhiều khía cạnh ấkhác nhau, do đó chúng tôi đã phải tập trung vào những nội dung chính để giới hạn phạm vi của đồ án Thứ hai, thư viện TensorFlow là một thư việ ấn r t phức tạp và đòi hỏi người dùng có ki n thế ức về ậ l p trình và các thuật toán Deep Learning để có th ể áp dụng và s dử ụng thư viện này hi u quệ ả Do đó, chúng em đã phải tìm hi u và hể ọc thêm nhiều ki n thế ức liên quan để có thể ắ n m v ng và s dữ ử ụng thư viện này Th ứ ba, thư viện TensorFlow đang được phát triển liên tục và có nhiều bản cập nhật mới, điều này đòi hỏi người dùng phải cập nhật kiến thức thường xuyên để không bị lạc hậu và sử dụng thư viện hiệu quả
Trang 6Nhóm sinh viên thực hiện: Cat GPT Trang 1
CHƯƠNG I GIỚI THIỆU VỀ TENSORFLOW
1 TensorFlow là gì?
Trong thế giới hiện đại ngày nay, s bùng n vự ổ ề cuộc cách m ng Trí Tu ạ ệ Nhân Tạo -
AI trong thập k vỷ ừa qua được ví von là bước tiến vĩ đạ ủi c a nhân loại Với sự phát triển của AI Trí Tuệ Nhân Tạo, đặt biệt là lĩnh vự- c machine learning - h c máy và ọdeep learning - học sâu đang ngày càng được chú ý hơn
Với thời điểm hiện tại, TensorFlow là thư viện open source ( mã nguồn mở) cho machine learning nổi tiếng và ph bi n nh t trên th giổ ế ấ ế ới, được xây d ng và phát tri n ự ểbởi các nhà nghiên cứu và k ỹ sư đế ừn t Google Việc hỗ trợ m nh m ạ ẽ các phép toán học để tính toán trong machine learning và deep learning đã giúp việc tiếp c n các bài ậtoán trở nên đơn giản, nhanh chóng và hiệu quả hơn nhiều
Học máy là m t môn hộ ọc ph c tứ ạp nhưng việc tri n khai các mô hình h c máy ít khó ể ọkhăn hơn nhiều so với trước đây, nhờ các khung học máy — chẳng hạn như
TensorFlow c a Googleủ giúp gi m b t quá trình thu th p d — ả ớ ậ ữ liệu, đào tạo mô hình, phục vụ d ự đoán và tinh chỉnh k t quế ả trong tương lai
2 L ch s ị ử ra đờ i
Vài năm trước, khi phải xử lý lượng dữ liệu khổng lồ, deep learning bắ ầt đ u cho thấy hiệu năng vượt trội so với tấ ảt c các thuật toán machine learning khác Google sớm nhận ra tiềm năng này và nghĩ rằng h nên s dọ ử ụng deep neural network để ả c i thi n ệcác dịch vụ ủa mình, trong đó có: c
– Gmail
– Hình ảnh (Google Photos)
– Google search engine
Được tạo ra bởi nhóm Google Brain và ban đầu được phát hành ra công chúng vào năm 2015 và phiên bản TensorFlow ổn định cuối cùng xuất hiện vào năm 2017 TensorFlow là một thư viện mã ngu n m tính toán s và h c máy quy mô l n ồ ở để ố ọ ớTensorFlow kết hợp một loạt các mô hình và thu t toán machine learning và deep ậlearning, mạng neural và làm cho chúng h u ích b ng các phép n d l p trình ph ữ ằ ẩ ụ ậ ổbiến Nó s d ng Python hoử ụ ặc JavaScript để cung c p API front-end thu n tiấ ậ ện để xây dựng các ng dứ ụng, đồng thời thực thi các ng dứ ụng đó trong C ++ hiệu suất cao
Trang 7Nhóm sinh viên thực hiện: Cat GPT Trang 2
TensorFlow, cạnh tranh với Framework như Pytorch và Apache MXNet, có thể đào tạo và ch y các mạ ạng neural sâu để phân loại ch s vi t tay, nh n d ng hình nh, ữ ố ế ậ ạ ảnhúng t , mừ ạng nơ-ron tái phát, mô hình trình t d ch máy, x lý ngôn ng t nhiên ự để ị ử ữ ự
và mô ph ng dỏ ựa trên PDE (phương trình vi phân một phần) Hơn hết, TensorFlow hỗtrợ dự đoán sản xuất ở quy mô l n, v i các mô hớ ớ ình tương tự được sử ụng để đào tạ d o TensorFlow cũng có một thư viện r ng lộ ớn các mô hình được đào tạo trước có thể được sử dụng trong các dự án của riêng bạn Bạn cũng có thể ử dụng mã từ s
TensorFlow Model Garden làm ví d v ụ ề các phương pháp hay nhất để đào tạo các
mô hình của riêng bạn
3 N n t ng TensorFlow và kh ề ả ả năng hoạt động
Kiến trúc của TensorFlow hoạt động được chia thành 3 ph n: ầ
- Tiền x ử lý dữ liệu
- Dựng model
- Train và ước tính model
TensorFlow cho phép lập trình viên t o ra dataflow graph, c u trúc mô t làm th nào ạ ấ ả ế
dữ liệu có th di chuy n qua 1 biể ể ểu đồ, hay 1 seri các node đang xử lý Mỗi node trong
đồ ị đạ th i diện 1 operation toán học, và mỗi kết n i hay edge giố ữa các node là 1 m ng ả
dữ liệu đa chiều, hay còn được gọi là ‘tensor’
TensorFlow cung cấp tất cả những điều này cho lập trình viên theo phương thức ngôn ngữ Python Vì Python khá d h c và làm vi c, ngoài ra cùng cung c p nhi u cách ti n ễ ọ ệ ấ ề ệ
lợi để ta hiểu được thế nào là các high-level abstractions có thể kết h p cùng với nhau ợNode và tensor trong TensorFlow là các đối tượng Python, và các ứng dụng
TensorFlow bản thân chúng cũng là các ứng dụng Python
Các operation toán h c thọ ực sự thì không được thi hành bằng Python Các thư viện biến đổi có sẵn thông qua TensorFlow được viết bằng các binary C++ hiệu suất cao Python chỉ điều hướng lưu lượng giữa các phần và cung c p các high-ấ level abstraction lập trình để nối chúng lại với nhau
Các ng d ng TensorFlow có th ứ ụ ể chạy trên h u h t m i m c tiêu thu n ti n: máy cầ ế ọ ụ ậ ệ ục
bộ, cụm trên đám mây, thiết bị iOS và Android, CPU ho c GPU N u b n s dặ ế ạ ử ụng đám mây riêng của Google, bạn có thể chạy TensorFlow trên silicon Bộ xử lý TensorFlow (TPU) tùy ch nh cỉ ủa Google để tăng tốc hơn nữa Tuy nhiên, các mô hình kết quả được tạo b i TensorFlow có thở ể được tri n khai trên h u h t mể ầ ế ọi thi t bế ị mà chúng sẽ được s dử ụng để ph c v d ụ ụ ự đoán
Trang 8Nhóm sinh viên thực hiện: Cat GPT Trang 3
TensorFlow 2.0, được phát hành vào tháng 2019 năm 2, đã cải tiến Framework theo nhiều cách d a trên ph n hự ả ồi của người dùng, để giúp làm việc dễ dàng hơn (ví dụ: bằng cách s dử ụng API Keras tương đối đơn giản để đào tạo mô hình) và hi u qu ệ ảhơn Đào tạo phân tán dễ chạy hơn nhờ API mới và hỗ trợ TensorFlow Lite giúp triển khai các mô hình trên nhi u n n t ng khác nhau Tuy nhiên, ề ề ả mã được viết cho các phiên bản trước của TensorFlow phải được viết l i ạ — đôi khi chỉ ột chút, đôi khi mđáng kể — để tận dụng tối đa các tính năng mới của TensorFlow 2.0
4 T o sao nên s d ng TensorFlow? ạ ử ụ
Lợi ích dễ thấy nhưng quan trọng nhất mà TensorFlow cung cấp cho việc lập trình machine learning chính là abstraction - s ự trừu tượng Thay vì x lý các chi tiử ết thực tếcủa việc triển khai các thu t toán hoậ ặc tìm ra nh ng cách thích hữ ợp để đưa đầu ra của một hàm này sang đầu vào của hàm khác, giờ đây bạn có thể tập trung vào phần logic tổng th c a 1 ng dể ủ ứ ụng hơn TensorFlow sẽ chăm sóc phần còn l i thay cho bạ ạn.Ngoài ra TensorFlow còn ung cấp các ti n ích b sung cho các nhà phát tri n c n ệ ổ ể ầdebug cũng như giúp bạn tự suy xét các ứng dụng TensorFlow Chế độ eager execution cho phép bạn đánh giá và sửa đổi từng operation của biểu đồ 1 cách riêng biệt và minh b ch, thay vì phạ ải dựng toàn bộ biểu đồ dưới dạng 1 đối tượng độc lập
vốn khá mơ ồ hay phh ải đánh giá chung tổng th Cuể ối cùng, 1 tính năng khá độc đáo của TensorFlow là TensorBoard TensorBoard cho phép bạn quan sát 1 cách tr c quan ựnhững gì TensorFlow đang làm
TensorFlow còn có nhiều cải tiế ừ ự ận t s h u thu n t ẫ ừ các ekip thương mạ ại h ng A tại Google Google không những ti p l a cho tiế ử ến độ nhanh chóng cho s phát triự ển đằng sau dự án, mà còn t o ra nhi u phạ ề ục vụ độc đáo xung quanh TensorFlow để nó d dàng ễdeploy và s dử ụng: như silicon TPU mình đã nói ở trên để tăng tốc hiệu suất đám mây Google, 1 online hub cho việc chia s ẻ các model được tạo v i framework, s hi n di n ớ ự ệ ệcủa in-browser và gần gũi với mobile của framework, và nhiều hơn thế ữa… nLưu ý: Trong 1 số công việc training, vài chi ti t v việc triển khai của TensorFlow ế ềlàm cho nó khó có thể quyết định được hoàn toàn kết quả training model Đôi khi 1 model được train trên 1 hệ thống này sẽ có thay đổi 1 chút so với 1 model được train trên hệ thống khác, ngay c ả khi chúng được cung c p d ấ ữ liệu như nhau Các nguyên nhân cho điều này cũng xê xích hay 1 số hành vi khi không được xác định khi sử dụng GPU Điều này nói rằng, các vấn đề đó có thể giải quyết được, và đội ngũ của TensorFlow cũng đang xem xét việc kiểm soát nhiều hơn để ảnh hưởng đến tính quyết định trong quy trình làm việc
Trang 9Nhóm sinh viên thực hiện: Cat GPT Trang 4
5 TensorFlow v ới các thư việ n và framework khác
TensorFlow cạnh tranh v i m t lo t các framework machine learning khác PyTorch, ớ ộ ạCNTK và MXNet là ba framework chính gi i quyả ết nhiều nhu cầu tương tự Sau đây
là m t cái nhìn t ng quan nhanh v ộ ổ ề nơi chúng nổi bật và vượt qua TensorFlow:PyTorch được xây dựng bằng Python và có nhiều điểm tương đồng khác với
TensorFlow: các thành phần được tăng tốc phần cứng dưới mui xe, mô hình phát tri n ểtương tác cao cho phép thiết kế theo mức sử dụng và nhiều thành phần hữu ích đã được bao gồm PyTorch nói chung là một lựa chọn tốt hơn để phát triển nhanh các dự
án cần được thiết lập và ch y trong mạ ột thời gian ngắn, nhưng TensorFlow chiến th ng ắcho các d án lự ớn hơn và quy trình làm việc phứ ạp hơn c t
CNTK, Bộ công cụ nh n thậ ức của Microsoft, giống như TensorFlow trong việc sửdụng cấu trúc đồ thị mô t để ả luồng d ữ liệu, nhưng nó tập trung chủ yếu vào việc tạo ra các mạng nơ-ron học sâu CNTK ử lý nhiề x u công vi c mệ ạng nơ-ron nhanh hơn và có
bộ API rộng hơn (Python, C ++, C #, Java) Nhưng hiệ ạn t i nó không d hễ ọc hoặc tri n ểkhai như TensorFlow Nó cũng chỉ có sẵn theo giấy phép GNU GPL 3.0, trong khi TensorFlow có sẵn theo gi y phép Apache t ấ ự do hơn Và CNTK không phát triển mạnh m ; B n phát hành lẽ ả ớn cuối cùng là vào năm 2019
Apache MXNet, được Amazon áp dụng làm khung deep learning hàng đầu trên AWS,
có thể thay đổi quy mô gần như tuyến tính trên nhiều GPU và nhiều máy MXNet cũng
hỗ trợ một loạt các API ngôn ng Python, C ++, Scala, R, JavaScript, Julia, Perl, ữ —
Go — m c dù các API gặ ốc của nó không dễ chịu khi làm việc như TensorFlow Nó cũng có một cộng đồng người dùng và nhà phát triển nhỏ hơn nhiều
CHƯƠNG II TỔ NG QUAN VỀ CÁC CH ỨC NĂNG CỦ A TENSORFLOW
Trang 10Nhóm sinh viên thực hiện: Cat GPT Trang 5
1 tensor có th ể được bắt nguồ ừ ữ liện t d u input hay kết quả ủ c a 1 tính toán Trong TensorFlow, tất cả các hoạt động được tiến hành bên trong 1 graph – ểu đồ bi Biểu đồ
là 1 tập hợp tính toán được diễn ra liên ti p Mế ỗi operation được gọi là 1 op node (operation node) và được kết nối v i nhau ớ
Biểu đồ phát thảo các op và kết nối giữa các node Tuy nhiên, nó không hiển thị các giá tr Ph n ị ầ edge của các node chính là tensor, 1 cách để nhập operation với dữ liệ u
Graph
TensorFlow sử d ng framework d ng biụ ạ ểu đồ Biểu đồ ậ t p h p và mô t tợ ả ất cả các chuỗi tính toán được thực hiện trong quá trình training Biểu đồ cũng mang rất nhi u ềlợi thế:
■ Đư c thực hiện để chạy trên nhiều CPU hoặc GPU và thậm chí cả hệ ợ điều hành
2 Danh sách các thu t toán n i b ậ ổ ật đượ c h ỗ trợ ở b i TensorFlow
Tính tới thời điểm phiên b n ra mả ắt TensorFlow 1.10, nó đã sở ữ h u built-in API cho: – Linear regression: tf.estimator.LinearRegressor
– Classification: tf.estimator.LinearClassifier
– Deep learning classification: tf.estimator.DNNClassifier
– Deep learning wipe and deep: tf.estimator.DNNLinearCombinedClassifier – Booster tree regression: tf.estimator.BoostedTreesRegressor
– Boosted tree classification: tf.estimator.BoostedTreesClassifier