Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm 1990 [22]. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động, do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý.
Sau đây là các đặc điểm của Python:
Ngữ pháp đơn giản, dễ đọc.
Vừa hướng thủ tục (procedural-oriented), vừa hướng đối tượng (object- oriented)
Hỗ trợ module và hỗ trợ gói (package)
Xử lý lỗi bằng ngoại lệ (Exception)
Kiểu dữ liệu động ở mức cao.
Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập trình.
Có khả năng tương tác với các module khác viết trên C/C++ (Hoặc Java cho Jython, hoặc .Net cho IronPython).
Có thể nhúng vào ứng dụng như một giao tiếp kịch bản (scripting interface).
Hình 3.1: Mô tả cú pháp, các dòng lệnh trong Python
(Nguồn: https://www.python.org/)
Hiện nay ngôn ngữ Python được xếp hạng thứ 3 trong Top 10 các ngôn ngữ lập trình phổ biến nhất đang được thế giới sử dụng:
Bảng 3.3: Bảng xếp hạng các ngôn ngữ lập trình năm 2020
Feb-20 Feb-19 Change
Programming
Language Ratings Change
1 1 Java 17.36% 1.48% 2 2 C 16.77% 4.34% 3 3 Python 9.35% 1.77% 4 4 C++ 6.16% -1.28% 5 7 C# 5.93% 3.08% 6 5 Visual Basic .NET 5.86% -1.23% 7 6 JavaScript 2.06% -0.79% 8 8 PHP 2.02% -0.25% 9 9 SQL 1.53% -0.37% 10 20 Swift 1.46% 0.54% (Nguồn: https://www.tiobe.com/)
3.2.2 Giới thiệu về thư viện TensorFlow
TensorFlow là một thư viện do nhóm phát triển Google Brain của Google phát triển và phát hành mã nguồn mở vào tháng 11/2015. TensorFlow được cho là sử dụng trong nhiều sản phẩm thương mại của Google [23]. Hiện tại được sử dụng nhiều trong quá trình hiện thực hoá mạng neural trong Deep Learning.
Các khái niệm cơ bản:
Tensor: Tensor là khái niệm cơ bản nhất trong TensorFlow.
Tensor là cấu trúc dữ liệu được sử dụng trong toàn TensorFlow, đại diện cho tất cả các loại dữ liệu. Hay nói cách khác là tất cả các loại dữ liệu đều là tensor.
Việc trao đổi dữ liệu trong quá trình xử lý chỉ thông qua tensor.
Hiểu đơn giản thì tensor là mảng n chiều hay list cộng thêm 1 vài thứ thú vị khác.
Bảng 3.4: Mô tả rank của tensor [23]
Rank đơn vị số học Ví dụ Python
0 Scalar s = 483
1 Vector v = [1.1, 2.2, 3.3]
2 Matrix m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
3 3-Tensor t = [[[2], [4], [6]], [[8], [10], [12]], [[14], [16], [18]]]
n n-Tensor (n chiều) ….
Shape: là chiều của tensor.
Ví dụ: t = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] có shape là [3, 3].
Bảng 3.5: Mô tả cú pháp shape của tensor [23]
Rank Shape Số chiều
(Dimension)
Ví dụ
0 [] 0-D A 0-D tensor. A scalar.
1 [D0] 1-D A 1-D tensor with shape [5].
2 [D0, D1] 2-D A 2-D tensor with shape [3, 4].
3 [D0, D1, D2] 3-D A 3-D tensor with shape [1, 4, 3].
n [D0, D1, … Dn-1] n-D A tensor with shape [D0, D1, … Dn-1].
Type: kiểu dữ liệu.
Bảng 3.6: Mô tả kiểu dữ liệu trong tensorflow [23]
Loại dữ liệu Loại
python
Mô tả
DT_FLOAT tf.float32 32 bits floating point.
DT_DOUBLE tf.float64 64 bits floating point.
DT_INT8 tf.int8 8 bits signed integer.
DT_INT16 tf.int16 16 bits signed integer.
DT_INT32 tf.int32 32 bits signed integer.
DT_INT64 tf.int64 64 bits signed integer.
DT_STRING tf.string Variable length byte arrays. Each element of a Tensor is a byte array.
DT_BOOL tf.bool Boolean.
DT_COMPLEX 64
tf.complex6 4
Complex number made of two 32 bits floating points: real and imaginary parts.
DT_QINT8 tf.qint8 8 bits signed integer used in quantized Ops.
DT_QINT32 tf.qint32 32 bits signed integer used in quantized Ops.
DT_QUINT8 tf.quint8 8 bits unsigned integer used in quantized Ops.
Variable: lưu trạng thái (state) sau khi tính toán graph.