[英]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.