Bài 6: Mô đun - Keras cơ bản

Đăng bởi: Admin | Lượt xem: 2349 | Chuyên mục: AI


Như ta đã tìm hiểu trước đó, mô-đun Keras chứa các lớp, hàm và biến được xác định trước rất hữu ích cho thuật toán học sâu. Trong bài này, ta sẽ tìm hiểu các mô-đun do Keras cung cấp .

1. Các mô-đun có sẵn :

Đầu tiên ta hãy xem danh sách các mô-đun có sẵn trong Keras.
  • Initializers − Cung cấp danh sách các chức năng khởi tạo. Ta có thể tìm hiểu chi tiết trong bài lớp Keras. trong giai đoạn tạo mô hình của học máy.
  • Regularizers − Cung cấp danh sách chức năng bộ điều chỉnh.
  • Constraints − Cung cấp danh sách hàm regularizers
  • Activations − Cung cấp danh sách hàm activator
  • Losses − Cung cấp danh sách hàm loss.
  • Metrics − Cung cấp một danh sách các hàm số liệu
  • Optimizers − Cung cấp danh sách hàm của trình tối ưu hóa
  • Callback −Cung cấp danh sách hàm callback. Ta có thể sử dụng nó trong quá trình đào tạo để in dữ liệu trung gian cũng như tự dừng đào tạo (phương pháp EarlyStopping) dựa trên một số điều kiện
  • Text processing − Cung cấp các chức năng chuyển đổi văn bản thành mảng NumPy phù hợp với học máy. Ta có thể sử dụng nó trong giai đoạn chuẩn bị dữ liệu của máy học
  • Image processing −Cung cấp các chức năng chuyển đổi ảnh thành mảng NumPy phù hợp với máy học. Ta có thể sử dụng nó trong giai đoạn chuẩn bị dữ liệu của máy học.
  • Sequence processing − Cung cấp các chức năng tạo dữ liệu dựa trên thời gian từ dữ liệu đầu vào đã cho. Ta có thể sử dụng nó trong giai đoạn chuẩn bị dữ liệu của máy học.
  • Backend − Cung cấp chức năng của thư viện backend như TensorFlowTheano.
  • Utilities −Cung cấp nhiều chức năng tiện ích hữu ích trong học sâu

2. Backend Mô-đun:

mô-đun backend được sử dụng cho các hoạt động backend của keras. Theo mặc định, keras chạy trên phần back end TensorFlow. Nếu muốn, bạn có thể chuyển sang các backend khác như Theano hoặc CNTK. Cấu hình backend Defualt được xác định bên trong thư mục gốc dưới tệp .keras / keras.json.
Mô-đun backend Keras như sau :
>>> from keras import backend as k
Nếu ta đang sử dụng TensorFlow backend mặc định, thì hàm dưới đây trả về thông tin dựa trên TensorFlow như sau:
>>> k.backend() 
'tensorflow'
>>> k.epsilon() 
1e-07
>>> k.image_data_format() 
'channels_last'
>>> k.floatx() 
'float32'
Ngắn gọn một số hàm backend quan trọng được sử dụng để phân tích dữ liệu -
a. get_uid()
Định danh cho đồ thị mặc định
>>> k.get_uid(prefix='') 
1 
>>> k.get_uid(prefix='') 2
b. reset_uids
Sử dụng để đặt lại giá trị uid
>>> k.reset_uids()
Sau đó, hãy thực thi get_uid(). Và giá trị sẽ đặt lại là 1
>>> k.get_uid(prefix='') 
1
c. placeholder
Khởi tạo placebolder tensor. Placeholder đơn giản dùng để giữ hình dạng 3D như sau :
>>> data = k.placeholder(shape = (1,3,3)) 
>>> data 
<tf.Tensor 'Placeholder_9:0' shape = (1, 3, 3) dtype = float32> 

If you use int_shape(), it will show the shape. 

>>> k.int_shape(data) (1, 3, 3)
d. dot
Được sử dụng để nhân 2 tensor. Coi a và b là hai tensor và c sẽ là kết quả của phép nhân của ab. Giả sử shape a là (4,2) và shape b là (2,3):
>>> a = k.placeholder(shape = (4,2)) 
>>> b = k.placeholder(shape = (2,3)) 
>>> c = k.dot(a,b) 
>>> c 
<tf.Tensor 'MatMul_3:0' shape = (4, 3) dtype = float32> 
>>>
e. ones :
Khởi tạo với tất cả các giá trị 1 :
>>> res = k.ones(shape = (2,2)) 

#print the value 

>>> k.eval(res) 
array([[1., 1.], [1., 1.]], dtype = float32)
f. batch_dot
Được sử dụng để tính tích của hai dữ liệu theo bactches. Kích thước đầu vào phải từ 2 trở lên
>>> a_batch = k.ones(shape = (2,3)) 
>>> b_batch = k.ones(shape = (3,2)) 
>>> c_batch = k.batch_dot(a_batch,b_batch) 
>>> c_batch 
<tf.Tensor 'ExpandDims:0' shape = (2, 1) dtype = float32>
g. variable
Sử dụng để khởi tạo biến. Ta sẽ thực hiện thao tác chuyển đổi đơn giản như sau :
>>> data = k.variable([[10,20,30,40],[50,60,70,80]]) 
#variable initialized here 
>>> result = k.transpose(data) 
>>> print(result) 
Tensor("transpose_6:0", shape = (4, 2), dtype = float32) 
>>> print(k.eval(result)) 
   [[10. 50.] 
   [20. 60.] 
   [30. 70.] 
   [40. 80.]]
Truy cập từ numpy bằng cách :
>>> data = np.array([[10,20,30,40],[50,60,70,80]]) 

>>> print(np.transpose(data)) 
   [[10 50] 
   [20 60] 
   [30 70] 
   [40 80]] 

>>> res = k.variable(value = data) 
>>> print(res) 
<tf.Variable 'Variable_7:0' shape = (2, 4) dtype = float32_ref>
h. is_sparse(tensor)
Được sử dụng để kiểm tra xem liệu tensor có đồng đều hay không
>>> a = k.placeholder((2, 2), sparse=True) 

>>> print(a) SparseTensor(indices =       
   Tensor("Placeholder_8:0", 
   shape = (?, 2), dtype = int64), 
values = Tensor("Placeholder_7:0", shape = (?,), 
dtype = float32), dense_shape = Tensor("Const:0", shape = (2,), dtype = int64)) 

>>> print(k.is_sparse(a)) True
i. to_dense()
Được sử dụng để chuyển đổi tensor từ sparse thành dense 
>>> b = k.to_dense(a) 
>>> print(b) Tensor("SparseToDense:0", shape = (2, 2), dtype = float32) 
>>> print(k.is_sparse(b)) False
k. random_uniform_variable
Được sử dụng để khởi bằng cách sử dụng định nghĩa phân phối đồng nhất (uniform distribution)
k.random_uniform_variable(shape, mean, scale)
Ở đây :
  • shape − biểu thị các hàng và cột ở định dạng tuples
  • mean − trung bình của phân phối đồng nhất.
  • scale − độ lệch chuẩn của phân phối đồng nhất.
Ví dụ :
>>> a = k.random_uniform_variable(shape = (2, 3), low=0, high = 1) 
>>> b = k. random_uniform_variable(shape = (3,2), low = 0, high = 1) 
>>> c = k.dot(a, b) 
>>> k.int_shape(c) 
(2, 2)

3. utils module

utils cung cấp chức năng tiện ích hữu ích cho học sâu. Một số phương thức được cung cấp bởi mô-đun utils như sau:
a. HDF5Matrix
Được sử dụng để biểu diễn dữ liệu đầu vào ở dạng HDF5
from keras.utils import HDF5Matrix data = HDF5Matrix('data.hdf5', 'data')
b. to_categorical
Sử dụng để chuyển đổi lớp vector từ lớp ma trận nhị phân
>>> from keras.utils import to_categorical 
>>> labels = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> to_categorical(labels) 
array([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
   [0., 1., 0., 0., 0., 0., 0., 0., 0., 0.], 
   [0., 0., 1., 0., 0., 0., 0., 0., 0., 0.], 
   [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.], 
   [0., 0., 0., 0., 1., 0., 0., 0., 0., 0.], 
   [0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], 
   [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], 
   [0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], 
   [0., 0., 0., 0., 0., 0., 0., 0., 1., 0.], 
   [0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]], dtype = float32)
>>> from keras.utils import normalize 
>>> normalize([1, 2, 3, 4, 5]) 
array([[0.13483997, 0.26967994, 0.40451992, 0.53935989, 0.67419986]])
c. print_summary
Có chức năng in ra tổng quan về mô hình.
from keras.utils import print_summary print_summary(model)
d. plot_model
Được sử dụng để tạo biểu diễn mô hình ở định dạng dấu chấm và lưu vào tệp.
from keras.utils import plot_model 
plot_model(model,to_file = 'image.png')
Plot_model này sẽ tạo ra một hình ảnh để hiểu hiệu suất mô hình.
Bài tiếp theo: Layers (phần 1) >>
vncoder logo

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!