簡體   English   中英

為什么我需要將輸入數據重塑為 Conv2D 的附加維度?

[英]Why do I need to reshape my input data to an additional dimension for Conv2D?

我是 tensorflow 的新手,我有一個 numpy 這種格式的輸入數據:

x_train_n.shape = (200,64,2048)

意思是200是訓練數據集的數量,64是H,2048是W

當我想將此輸入提供給我的網絡時,首先我必須重塑它:

x_train_n = x_train_n.reshape(x_train_n.shape[0], 1, rows, cols)

然后

inputs = Input(shape=x_train_n.shape[1:])

output1 = Conv2D(32, (3, 15), strides=(1, 2), padding='same', data_format='channels_first', input_shape=x_train_n.shape[1:])(inputs) 

否則我得到 Conv2d 預期有 4 個維度但維度為 3 個錯誤的錯誤。

這是正確的做法嗎? 如果是這樣,為什么這是有道理的?

為什么不重塑就不能跟隨?

output1 = Conv2D(32, (3, 15), strides=(1, 2), padding='same', data_format='channels_first', input_shape=x_train_n.shape())(inputs)

那講得通。 卷積層需要多個輸入通道。 對於 RBG 圖像,該數字為 3。對於某些數據(例如灰度圖像或顯然您擁有的任何數據),通道數為 1。但是,該通道仍然需要明確存在 - 它不能簡單地存在默示。

是的,這是正確的做法。

Conv2D層應用於 2D 數據。 2D 數據可能有多個通道。 在您的情況下,通道數等於 1。因此, Conv2D旨在應用於多個通道,您必須添加這個額外的維度來聲明您的數據有多少個通道(在您的情況下為 1 個通道)

Conv2D需要 4 個正確的維度,它們是: (BatchSize, Channel, Width, Height)

對於彩色圖像,您通常有 3 個通道 RGB 用於顏色強度,對於灰度圖像只有一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM