Trong bối cảnh hiện nay, AI và học máy đang trở thành xu hướng không thể phủ nhận. Để đối phó với những thách thức phức tạp và đa dạng, các nhà phát triển đã chuyển hướng sự quan tâm của mình đến một lĩnh vực cụ thể hơn: học sâu. Lĩnh vực này mô phỏng bộ não con người, sử dụng mạng nơ-ron làm công cụ chính. Để thực hiện và tối ưu hóa các mô hình này, các thư viện như Theano, TensorFlow, Caffe và Mxnet đóng vai trò quan trọng. Với mong muốn giúp bạn hiểu rõ hơn về một trong những framework hàng đầu trong deep learning (học sâu), trong bài viết dưới đây hãy cùng ICANTECH tìm hiểu về Keras và những ưu điểm nổi bật.
Keras là gì hay Keras python là gì là câu hỏi được nhiều người quan tâm. Keras là một thư viện mã nguồn mở được sử dụng rộng rãi trong lĩnh vực deep learning (học sâu) và mạng nơ-ron. Nó được thiết kế để giúp các nhà phát triển xây dựng và thử nghiệm các mô hình học sâu một cách dễ dàng và linh hoạt.
Mục tiêu chính của Keras là cung cấp một API đơn giản, trực quan và dễ sử dụng, giúp người dùng tập trung vào việc xây dựng mô hình mà không cần lo lắng về chi tiết kỹ thuật phức tạp.
Một trong những điểm mạnh của Keras là khả năng tích hợp với các framework học sâu khác như TensorFlow và Theano, cho phép người dùng tận dụng sức mạnh của cả hai thế giới. Đây chính là điều giúp Keras trở thành một lựa chọn hàng đầu cho các dự án học sâu từ phân loại ảnh, dự đoán chuỗi thời gian, đến các ứng dụng trong lĩnh vực ngôn ngữ tự nhiên và nhiều lĩnh vực khác.
Dưới đây là một số lý do do mà bạn nên sử dụng Keras:
Trong Keras, một "model" thường đề cập đến một cấu trúc hoặc kiến trúc mô hình học sâu. Một model trong Keras được sử dụng để định nghĩa cách mà các lớp (layers) của mạng nơ-ron được kết nối với nhau và cách chúng hoạt động cùng nhau để thực hiện một nhiệm vụ cụ thể.
Một model trong Keras có thể được xây dựng và tùy chỉnh bằng cách thêm từng lớp vào một trong những cách sau:
Dưới đây là một ví dụ cơ bản về cách sử dụng Sequential model trong Keras để xây dựng một mô hình đơn giản với một lớp Dense cho việc phân loại ảnh từ bộ dữ liệu MNIST:
pip install keras
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Flatten
from keras.datasets import mnist
from keras.utils import to_categorical
# Load dữ liệu MNIST
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
# Chuẩn hóa và chuyển đổi dữ liệu
train_images = train_images.astype('float32') / 255.0
test_images = test_images.astype('float32') / 255.0
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)
# Xây dựng mô hình Sequential
model = Sequential()
# Thêm lớp Flatten để chuyển đổi dữ liệu ảnh thành mảng 1D
model.add(Flatten(input_shape=(28, 28)))
# Thêm một lớp Dense với 128 neuron và hàm kích hoạt là relu
model.add(Dense(128, activation='relu'))
# Thêm lớp đầu ra Dense với 10 neuron (do có 10 lớp) và hàm kích hoạt là softmax
model.add(Dense(10, activation='softmax'))
# Biên dịch mô hình: sử dụng hàm mất mát 'categorical_crossentropy' và tối ưu hóa 'adam'
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
# Huấn luyện mô hình với dữ liệu huấn luyện
model.fit(train_images, train_labels, epochs=5, batch_size=32, validation_split=0.2)
# Đánh giá mô hình trên dữ liệu test
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f"Test accuracy: {test_acc * 100:.2f}%")
Trong đoạn code trên
Import thư viện cần thiết:
import keras
from keras.models import Sequential
from keras.layers import *
from keras.utils import to_categorical
import matplotlib.pyplot as plt
from keras.datasets import mnist
Tải và chuẩn bị dữ liệu MNIST:
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
train_images = train_images.astype('float32') / 255.0
test_images = test_images.astype('float32') / 255.0
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)
Xây dựng mô hình Sequential
model = Sequential()
model.add(Flatten(input_shape=(28, 28)))
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))
Biên dịch mô hình
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
Huấn luyện mô hình
model.fit(train_images, train_labels, epochs=5, batch_size=32, validation_split=0.2)
Đánh giá mô hình trên dữ liệu kiểm tra
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f"Test accuracy: {test_acc * 100:.2f}%")
Đoạn code này sử dụng Keras để xây dựng, huấn luyện và đánh giá một mô hình mạng nơ-ron sử dụng dữ liệu MNIST để nhận diện chữ số viết tay.
Như vậy, ICANTECH đã cùng bạn tìm hiểu về Keras cũng như những lý do bạn nên sử dụng Keras trong Python - một thư viện rất hữu ích cho những bạn đang tìm hiểu về deep learning. Hi vọng bạn sẽ áp dụng những kiến thức được ICANTECH chia sẻ ở trên để áp dụng cho chương trình của mình.
Cảm ơn bạn đã đọc bài viết, nếu bạn đang quan tâm đến học lập trình online thì hãy tham khảo ngay các khóa học lập trình dưới đây tại ICANTECH nhé
Nguồn ảnh: ICANTECH.