[英]Tensorflow keras Conv1d input_shape problem, can anyone help me?
[英]fix input_shape of 3D Conv in keras (Tensorflow at the backend)
我有大約8k +圖像。 在預處理后,我有大小為224 * 224 * 3的numpy圖像數組,我使用inception_V3作為基本模型。 我有二進制分類的標簽(y)。
以下是一些快速見解:
X_train.shape = (5058, 224, 224, 3, 1) #after reshaping
Conv_3d input_shape = (5058,224,224, 3)
現在,當我嘗試適合我的模型時,我收到此錯誤:
ValueError:檢查輸入時出錯:期望conv3d_42_input具有形狀(5058,224,224,3),但得到的形狀為數組(224,224,3,1)
base_model = InceptionV3(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
def conv_3d():
model = Sequential()
model.add(Conv3D(32, (3, 3, 3), activation='relu',input_shape= (5058,224,224, 3) ,padding='same')) #(time_sequence, width, height, channels)
model.add(MaxPooling3D(pool_size=(1, 2, 2), strides=(1, 2, 2)))
model.add(Conv3D(64, (3, 3, 3), activation='relu'))
model.add(MaxPooling3D(pool_size=(1, 2, 2), strides=(1, 2, 2)))
model.add(Conv3D(128, (3, 3, 3), activation='relu'))
model.add(Conv3D(128, (3, 3, 3), activation='relu'))
model.add(MaxPooling3D(pool_size=(1, 2, 2), strides=(1, 2, 2)))
model.add(Conv3D(256, (2, 2, 2), activation='relu'))
model.add(Conv3D(256, (2, 2, 2), activation='relu'))
model.add(MaxPooling3D(pool_size=(1, 2, 2), strides=(1, 2, 2)))
model.add(Flatten())
model.add(Dense(1024))
model.add(Dropout(0.5))
model.add(Dense(1024))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))
return model
X_train_temp = X_train.reshape(X_train.shape[0], 224, 224, 3, 1)
X_valid_temp = X_valid.reshape(X_valid.shape[0], 224, 224, 3, 1)
model.fit(X_train_temp, y_train, epochs=50, validation_data=(X_valid_temp, y_valid))
從字面上看,我搞砸了上面的錯誤。 我也看到了一些類似的答案,但找不到解決方案
def conv_3d():
model = Sequential()
model.add(Conv3D(32, (3, 3, 3), activation='relu',input_shape= (224,224,3) ,padding='same')) #(time_sequence, width, height, channels)
model.add(MaxPooling3D(pool_size=(1, 2, 2), strides=(1, 2, 2)))
model.add(Conv3D(64, (3, 3, 3), activation='relu'))
model.add(MaxPooling3D(pool_size=(1, 2, 2), strides=(1, 2, 2)))
model.add(Conv3D(128, (3, 3, 3), activation='relu'))
model.add(Conv3D(128, (3, 3, 3), activation='relu'))
model.add(MaxPooling3D(pool_size=(1, 2, 2), strides=(1, 2, 2)))
model.add(Conv3D(256, (2, 2, 2), activation='relu'))
model.add(Conv3D(256, (2, 2, 2), activation='relu'))
model.add(MaxPooling3D(pool_size=(1, 2, 2), strides=(1, 2, 2)))
model.add(Flatten())
model.add(Dense(1024))
model.add(Dropout(0.5))
model.add(Dense(1024))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))
return model
X_train_temp = X_train.reshape(X_train.shape[0], 224, 224, 3, 1)
X_valid_temp = X_valid.reshape(X_valid.shape[0], 224, 224, 3, 1)
model.fit(X_train_temp, y_train, epochs=50, validation_data=(X_valid_temp, y_valid))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.