Python TensorFlow - tf.keras.Conv2D() 函式
簡介
在深度學習中,計算機視覺是應用於許多與影像資料集相關的複雜和高階任務的最重要領域之一。它用於影像分析、目標檢測、分割等。這主要透過 TensorFlow 和 Keras 的組合實現,它們提供了一些內建函式,可以自動化並簡化模型訓練過程。
Conv2D 也是 Keras 庫中最有用和強大的函式之一,用於將卷積運算應用於影像。在本文中,我們將討論 Keras 中的 Conv2D 函式,它是做什麼的,如何使用它,以及其他一些相關討論。
所以在直接深入瞭解函式之前,讓我們先討論一下卷積運算。
什麼是卷積運算?
卷積運算是在卷積神經網路中用於從輸入影像資料中提取資訊或特徵的運算型別。
這裡使用了卷積層,它將這些運算應用於輸入影像,幷包含不同的濾波器、濾波器大小、填充、輸入形狀和啟用函式。
在卷積層中,將輸入影像傳遞到該層,並應用所有指定大小的濾波器,還會應用填充和啟用函式。此層將影像轉換為不同的形式,然後將轉換後的影像傳遞到下一層或下一個卷積層。
在卷積層中執行的這些運算稱為卷積運算,這對於處理和提取資料特徵是必要的。
現在讓我們討論 tf.keras.Conv2D() 函式,它的含義以及引數。
tf.keras.Conv2D() 函式
正如我們上面討論的那樣,卷積運算是在卷積層中執行的運算,它具有其定義的某些引數,並且為了從影像中提取特徵,會在影像中執行不同的運算。要在 Keras 中執行此任務,可以使用 Conv2D 函式。
tf.keras.Conv2D 是一個有助於在神經網路中建立卷積層的函式。藉助此函式,我們可以透過指定其引數來建立一個全新的卷積層。
此函式採用多個引數作為輸入;讓我們逐一討論它們。
濾波器數量:由於它是卷積運算,我們將有一個核心或濾波器將應用於影像或輸入影像以變換輸入。第一個引數是濾波器數量,它指定我們要應用於影像的濾波器數量。這應該仔細選擇,因為它會影響模型的效能和複雜性。
核心大小:核心大小是濾波器大小的度量,它指定我們將應用於影像的濾波器的大小。為了獲得性能更好的模型,應該仔細選擇核心大小。
啟用函式:啟用函式也是卷積層最重要的引數之一,其中為每個卷積層定義要使用的啟用函式。每個卷積層都可以具有不同的啟用函式,可以更改它以微調模型以獲得更好的效能。
填充:眾所周知,填充是新增到影像的額外畫素層,用於多種目的。卷積運算也涉及填充引數,這些引數用於指定要應用於特定影像的影像的填充。在這裡,我們可以為填充選擇有效值或相同值。“有效”填充意味著輸入影像大小將保持不變,並且不會應用填充,這是預設引數;而“相同”填充意味著將應用填充,以保持影像大小不變。
步幅:在建立卷積層時也會定義步幅,它基本上是核心在影像上移動的步長大小的度量。然後可以修改步幅以微調模型並增強其效能。
現在讓我們用 tf.keras.Conv2D() 函式的程式碼示例來應用相同的概念。
tf.keras.Conv2D() 函式:程式碼示例
要將 tf.keras.Conv2D 函式應用於任何影像,首先我們需要安裝所需的庫,即 TensorFlow 和 Keras。
要安裝所需的庫,我們可以使用上面的程式碼 (此處應插入程式碼示例)
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt
現在我們已經安裝了所需的庫,下一步是生成影像或載入現有影像。為此,請使用上面的程式碼 (此處應插入程式碼示例)
image = np.random.rand(1, 224, 224, 3).astype(np.float32)
現在我們已經準備好影像和庫,我們將使用 tf.keras.Conv2D() 函式來建立一個卷積層。(此處應插入程式碼示例)
conv_layer1 = tf.keras.layers.Conv2D(16, (3, 3), activation='relu', input_shape=(224, 224, 3)) conv_layer2 = tf.keras.layers.Conv2D(32, (3, 3), activation='relu')
正如我們在上面的程式碼中看到的,我們建立了兩個具有不同濾波器數量和相同核心大小的不同卷積層。接下來,我們將把輸入影像傳送到卷積層以從中提取特徵。
output1 = conv_layer1(image) output2 = conv_layer2(output1)
我們可以看到,輸入影像被髮送到卷積層 1,一旦預處理完成並且運算結束,來自卷積層 1 的相同輸出影像將作為輸入影像傳送到卷積層 2。
結論
在本文中,我們討論了 tf.keras.conv2D() 函式、卷積運算及其在卷積神經網路中的意義,以及顯示其用例的程式碼示例。本文將幫助人們更好地理解 Conv2D 函式,並幫助人們在需要時應用它。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP