Keras - Mô-đun
Như chúng ta đã học 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. Chúng ta hãy tìm hiểu các mô-đun do Keras cung cấp trong chương này.
Các mô-đun có sẵn
Đầu tiên chúng 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. Chúng ta có thể tìm hiểu chi tiết trong chương lớp Keras . trong giai đoạn tạo mô hình của học máy.
Regularizers- Cung cấp một danh sách các chức năng điều tiết. Chúng ta có thể tìm hiểu chi tiết trong chương Keras Layers .
Constraints- Cung cấp danh sách các ràng buộc chức năng. Chúng ta có thể tìm hiểu chi tiết trong chương Keras Layers .
Activations- Cung cấp danh sách các chức năng kích hoạt. Chúng ta có thể tìm hiểu chi tiết trong chương Keras Layers .
Losses- Cung cấp danh sách các chức năng mất mát. Chúng ta có thể tìm hiểu chi tiết trong chương Huấn luyện mô hình .
Metrics- Cung cấp danh sách các chức năng đo lường. Chúng ta có thể tìm hiểu chi tiết trong chương Huấn luyện mô hình .
Optimizers- Cung cấp danh sách các chức năng tối ưu hóa. Chúng ta có thể tìm hiểu chi tiết trong chương Huấn luyện mô hình .
Callback- Cung cấp danh sách các chức năng gọi lại. Chúng tôi có thể sử dụng nó trong quá trình đào tạo để in dữ liệu trung gian cũng như để dừng đào tạo chính nó (EarlyStopping phương pháp) dựa trên một số điều kiện.
Text processing- Cung cấp các chức năng chuyển văn bản thành mảng NumPy phù hợp với học máy. Chúng 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 hình ảnh thành mảng NumPy phù hợp với máy học. Chúng 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 theo thời gian từ dữ liệu đầu vào đã cho. Chúng 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 phụ trợ như TensorFlow và Theano .
Utilities - Cung cấp nhiều chức năng tiện ích hữu ích trong học sâu.
Để xem nào backend mô-đun và utils mô hình trong chương này.
mô-đun phụ trợ
backend moduleđược sử dụng cho các hoạt động phụ trợ keras. Theo mặc định, keras chạy trên phần phụ trợ TensorFlow. Nếu muốn, bạn có thể chuyển sang các chương trình phụ trợ khác như Theano hoặc CNTK. Cấu hình phụ trợ Defualt được xác định bên trong thư mục gốc của bạn dưới tệp .keras / keras.json.
Mô-đun phụ trợ Keras có thể được nhập bằng mã bên dưới
>>> from keras import backend as k
Nếu chúng ta đang sử dụng TensorFlow phụ trợ mặc định , thì hàm dưới đây trả về thông tin dựa trên TensorFlow như được chỉ định bên dưới:
>>> k.backend()
'tensorflow'
>>> k.epsilon()
1e-07
>>> k.image_data_format()
'channels_last'
>>> k.floatx()
'float32'
Hãy cho chúng tôi hiểu ngắn gọn một số hàm phụ trợ quan trọng được sử dụng để phân tích dữ liệu -
get_uid ()
Nó là định danh cho đồ thị mặc định. Nó được định nghĩa dưới đây -
>>> k.get_uid(prefix='')
1
>>> k.get_uid(prefix='') 2
reset_uids
Nó được sử dụng để đặt lại giá trị uid.
>>> k.reset_uids()
Bây giờ, một lần nữa thực thi get_uid () . Điều này sẽ được đặt lại và thay đổi lại thành 1.
>>> k.get_uid(prefix='')
1
giữ chỗ
Nó được sử dụng để khởi tạo một tensor trình giữ chỗ. Trình giữ chỗ đơn giản để giữ hình dạng 3-D được hiển thị bên dưới -
>>> 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ấu chấm
Nó được sử dụng để nhân hai tenxơ. Coi a và b là hai chục và c sẽ là kết quả của phép nhân của ab. Giả sử hình dạng là (4,2) và hình dạng b là (2,3). Nó được định nghĩa dưới đây,
>>> 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>
>>>
những cái
Nó được sử dụng để khởi tạo tất cả dưới dạng one giá trị.
>>> res = k.ones(shape = (2,2))
#print the value
>>> k.eval(res)
array([[1., 1.], [1., 1.]], dtype = float32)
batch_dot
Nó được sử dụng để thực hiện tích của hai dữ liệu theo lô. Kích thước đầu vào phải từ 2 trở lên. Nó được hiển thị bên dưới -
>>> 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>
Biến đổi
Nó được sử dụng để khởi tạo một biến. Hãy để chúng tôi thực hiện thao tác chuyển đổi đơn giản trong biến này.
>>> 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.]]
Nếu bạn muốn truy cập từ numpy -
>>> 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>
is_sparse (tensor)
Nó được sử dụng để kiểm tra xem tensor có bị thưa 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
to_dense ()
Nó được sử dụng để chuyển từ thưa thớt thành dày đặc.
>>> b = k.to_dense(a)
>>> print(b) Tensor("SparseToDense:0", shape = (2, 2), dtype = float32)
>>> print(k.is_sparse(b)) False
random_uniform_variable
Nó được sử dụng để khởi tạo bằng cách sử dụng uniform distribution Ý tưởng.
k.random_uniform_variable(shape, mean, scale)
Đây,
shape - biểu thị các hàng và cột ở định dạng bộ giá trị.
mean - trung bình của phân phối đồng đều.
scale - độ lệch chuẩn của phân bố đồng đều.
Hãy để chúng tôi xem xét cách sử dụng ví dụ dưới đây -
>>> 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)
mô-đun utils
utilscung cấp chức năng tiện ích hữu ích cho học sâu. Một số phương pháp được cung cấp bởiutils mô-đun như sau:
HDF5Matrix
Nó được sử dụng để biểu diễn dữ liệu đầu vào ở định dạng HDF5.
from keras.utils import HDF5Matrix data = HDF5Matrix('data.hdf5', 'data')
to_categorical
Nó được sử dụng để chuyển đổi vector lớp thành ma trận lớp 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]])
print_summary
Nó được sử dụng để in tóm tắt của mô hình.
from keras.utils import print_summary print_summary(model)
plot_model
Nó đượ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')
Điều này plot_model sẽ tạo ra một hình ảnh để hiểu hiệu suất của mô hình.