Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để Tensorflow có thể được sử dụng để tạo một cơ sở tích hợp bằng Python?

Một mạng nơ-ron tích tụ nói chung sẽ bao gồm sự kết hợp của các lớp sau:Các lớp cấu trúc, lớp gộp và lớp dày đặc.

Đọc thêm: TensorFlow là gì và cách Keras làm việc với TensorFlow để tạo Mạng thần kinh?

Mạng nơ-ron hợp hiến đã được sử dụng để tạo ra kết quả tuyệt vời cho một loại vấn đề cụ thể, chẳng hạn như nhận dạng hình ảnh. Nó có thể được tạo bằng phương thức ‘Sequential’ có trong lớp ‘models’. Các lớp có thể được thêm vào mạng phức hợp này bằng cách sử dụng phương thức "add".

Chúng tôi sẽ sử dụng API tuần tự Keras, hữu ích trong việc xây dựng mô hình tuần tự được sử dụng để làm việc với một chồng lớp đơn giản, trong đó mỗi lớp có chính xác một tensor đầu vào và một tensor đầu ra.

Chúng tôi đang sử dụng Google Colaboratory để chạy đoạn mã dưới đây. Google Colab hoặc Colaboratory giúp chạy mã Python qua trình duyệt và không yêu cầu cấu hình cũng như quyền truy cập miễn phí vào GPU (Đơn vị xử lý đồ họa). Colaboratory đã được xây dựng trên Jupyter Notebook.

print("Creating the convolutional base")
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
print("Description of arhcitecture is")
model.summary()

Tín dụng mã:https://www.tensorflow.org/tutorials/images/cnn

Đầu ra

Creating the convolutional base
Description of arhcitecture is
Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #  
=================================================================
conv2d (Conv2D)              (None, 30, 30, 32)        896      
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 15, 15, 32)        0        
_________________________________________________________________
conv2d_1 (Conv2D)            (None, 13, 13, 64)        18496    
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 6, 6, 64)          0        
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 4, 4, 64)          36928    
=================================================================
Total params: 56,320
Trainable params: 56,320
Non-trainable params: 0

Giải thích

  • Các dòng trên giúp xác định cơ sở tích chập bằng cách sử dụng một mẫu chung.

  • Mẫu này là một chồng các lớp Conv2D và MaxPooling2D.

  • Khi đầu vào, là một CNN lấy hàng chục hình dạng (image_height, image_width, color_channels), được thực hiện.

  • CNN được định cấu hình để xử lý đầu vào của hình dạng (32, 32, 3), là định dạng của hình ảnh CIFAR.

  • Điều này có thể được thực hiện bằng cách chuyển đối số input_shape vào lớp đầu tiên của chúng ta.

  • Đầu ra của mỗi lớp Conv2D và MaxPooling2D là một hình dạng 3D (chiều cao, chiều rộng, các kênh).

  • Kích thước chiều rộng và chiều cao thu hẹp khi mạng sâu hơn.

  • Số lượng kênh đầu ra cho mỗi lớp Conv2D được kiểm soát bởi đối số đầu tiên (ví dụ:32 hoặc 64).