Keras được phát triển như một phần của dự án nghiên cứu ONEIROS (Hệ thống vận hành robot thông minh nơ-ron điện tử mở). Keras là một API học sâu (deep learning) viết bằng Python. Đây là API cấp cao với giao diện hiệu quả giúp giải quyết các bài toán học máy. Nó chạy trên nền tảng TensorFlow. Keras được xây dựng để hỗ trợ thử nghiệm nhanh chóng, cung cấp các trừu tượng và khối xây dựng cần thiết để phát triển và đóng gói giải pháp học máy.
Keras có khả năng mở rộng cao và hỗ trợ đa nền tảng, có thể chạy trên TPU hoặc cụm GPU. Các mô hình Keras cũng có thể xuất để chạy trên trình duyệt web hoặc điện thoại di động.
Keras đã có sẵn trong gói TensorFlow. Có thể truy cập bằng dòng code sau:
import tensorflow from tensorflow import keras
API hàm (Functional API) của Keras giúp tạo các mô hình linh hoạt hơn so với Sequential API. Functional API có thể làm việc với các mô hình có topo không tuyến tính, chia sẻ lớp và xử lý nhiều đầu vào/đầu ra. Một mô hình học sâu thường là một đồ thị acyclic có hướng (DAG) chứa nhiều lớp. Functional API giúp xây dựng đồ thị các lớp này.
Chúng ta sử dụng Google Colaboratory để chạy code dưới đây. Google Colab cho phép chạy code Python trên trình duyệt, không cần cấu hình và miễn phí truy cập GPU. Colab được xây dựng dựa trên Jupyter Notebook. Dưới đây là đoạn code trích xuất và tái sử dụng nút trong đồ thị các lớp:
Ví dụ
print("Mô hình VGG19 với trọng số tiền huấn luyện")
vgg19 = tf.keras.applications.VGG19()
features_list = [layer.output for layer in vgg19.layers]
feat_extraction_model = keras.Model(inputs=vgg19.input, outputs=features_list)
img = np.random.random((1, 224, 224, 3)).astype("float32")
print("Tạo mô hình trích xuất đặc trưng")
extracted_features = feat_extraction_model(img)
Nguồn code: TensorFlow Guide
Đầu ra
Mô hình VGG19 với trọng số tiền huấn luyện Downloading data from https://storage.googleapis.com/tensorflow/kerasapplications/vgg19/vgg19_weights_tf_dim_ordering_tf_kernels.h5 574717952/574710816 [==============================] - 6s 0us/step Tạo mô hình trích xuất đặc trưng
Giải thích
- Vì đồ thị các lớp là cấu trúc dữ liệu tĩnh, nên có thể truy cập được.
- Đây là lý do các mô hình hàm có thể được vẽ thành hình ảnh.
- Các kích hoạt của lớp trung gian (nút) cũng có thể được truy cập và tái sử dụng.
- Rất hữu ích cho mục đích trích xuất đặc trưng (feature extraction).
- Sử dụng mô hình VGG19 với trọng số tiền huấn luyện từ ImageNet.
- Các kích hoạt trung gian này có thể lấy được bằng cách truy vấn cấu trúc dữ liệu đồ thị.
- Các đặc trưng này dùng để tạo mô hình trích xuất đặc trưng mới trả về giá trị kích hoạt của lớp trung gian.