簡體   English   中英

ValueError:檢查輸入時出錯:預期conv2d_79_input具有4個維,但數組的形狀為(99,4457,4)

[英]ValueError: Error when checking input: expected conv2d_79_input to have 4 dimensions, but got array with shape (99, 4457, 4)

這是使用一種熱編碼的RNA序列的二進制分類CNN模型。 數據集已經是一種熱編碼,我的X形狀是(99,4457,4)

我嘗試使用以下方法增加尺寸:

arr4d = np.expand_dims(X, 0)

這給了我以下形狀:(1,99,4457,4)

但是后來我收到另一個錯誤:

ValueError:檢查目標時出錯:預期density_64的形狀為(4,),但數組的形狀為(1,)

我也嘗試了其他幾種方法,但是我只是做的不正確。 任何幫助深表感謝。

X = np.reshape(X2, (X2.shape[0],maximum,4))


# In[62]:


def build_cnn():

    model = Sequential()

    # Multiple convolution operations to detect features in the images
    model.add(Conv2D(32,kernel_size=3,activation='relu',input_shape=(99,4457,4)))
    model.add(BatchNormalization())
    model.add(Conv2D(32,kernel_size=3,activation='relu')) # no need to specify shape as there is a layer before
    model.add(BatchNormalization())
    model.add(Conv2D(32,kernel_size=5,strides=2,padding='same',activation='relu'))
    model.add(BatchNormalization())
    model.add(Dropout(0.4)) # reduce overfitting

    model.add(Conv2D(64,kernel_size=3,activation='relu'))
    model.add(BatchNormalization())
    model.add(Conv2D(64,kernel_size=3,activation='relu'))
    model.add(BatchNormalization())
    model.add(Conv2D(64,kernel_size=5,strides=2,padding='same',activation='relu'))
    model.add(BatchNormalization())
    model.add(Dropout(0.4)) # reduce overfitting

    # Flattening and classification by standard ANN
    model.add(Flatten())
    model.add(Dense(4, activation='relu'))
    model.add(BatchNormalization())
    model.add(Dropout(0.4))
    model.add(Dense(4, activation='softmax'))

    model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

    return model


# In[63]:


model = build_cnn()
model.fit(X, y, batch_size=64, epochs=16)

這給了我以下形狀:(1、99、4457、4)這絕對是錯誤的形狀。 圖像通常具有(batch_size,通道,高度,寬度)。 在用kernel_size = 3卷積后,什么是3x3映射,形狀將是(1,32,4457-2,4-2),並且無法在下一個conv2d中處理

暫無
暫無

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

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