簡體   English   中英

Python(Keras):值錯誤:檢查輸入時出錯

[英]Python (Keras): Value Error: Error when checking input

我正在嘗試使用gensim庫生成的單詞向量訓練CNN。 以數字形式生成所有數據后,當出現以下錯誤時,我嘗試使用Keras將其傳遞給CNN模型:

ValueError:檢查輸入時出錯:預期conv2d_1_input具有4個維,但是數組的形狀為(20000,250,50)

我已經在這個問題上搜索了幾個小時,而針對相似/相同問題發布的所有解決方案都無法為我解決此錯誤。 誰能看到我輸入尺寸出現問題的地方嗎? 我生成了一些隨機的numpy數據來重新創建錯誤:

import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Convolution2D, Flatten, Dropout
from keras.layers.embeddings import Embedding
from keras.preprocessing import sequence
from keras.callbacks import TensorBoard

t = np.random.rand(20000,250,50)
l = np.random.rand(20000,1)

embedding_vecor_length = 50
net = Sequential()
net.add(Convolution2D(64, 3,input_shape=(1,250,50), 
data_format='channels_first'))
# Convolutional model (3x conv, flatten, 2x dense)
net.add(Convolution2D(32,(3), padding='same'))
net.add(Convolution2D(16,(3), padding='same'))
net.add(Convolution2D(8,(3), padding='same'))
net.add(Flatten())
net.add(Dropout(0.2))
net.add(Dense(180,activation='sigmoid'))
net.add(Dropout(0.2))
net.add(Dense(1,activation='sigmoid'))
net.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

tensorBoardCallback = TensorBoard(log_dir='./logs', write_graph=True)
net.summary()

net.fit(t, l, epochs=3, callbacks=[tensorBoardCallback], batch_size=64)

卷積使用4維。 考慮到您正在使用“ channels_first”:

  • 圖片
  • 通道
  • 第1面
  • 側面2

您的輸入缺少渠道。

t = np.random.rand(20000,1,250,50)

暫無
暫無

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

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