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