ValueError: ошибка при проверке ввода: ожидается, что density_1_input будет иметь форму (1,), но получил массив с формой (5000,) - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь построить модель NLP для набора данных обнаружения сарказма на kaggle. Я новичок в реализации нейронных сетей, и это первый раз, когда я реализую нейронную сеть с использованием Keras. Вот мой код: *

Вывод для кода:

2.0.0
Using TensorFlow backend.
2.3.1
2020-08-01 18:58:02.364557: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_1 (Dense)              (None, 5)                 10        
_________________________________________________________________
dense_2 (Dense)              (None, 1)                 6         
=================================================================
Total params: 16
Trainable params: 16
Non-trainable params: 0
_________________________________________________________________
(None, 1)
{'name': 'sequential_1', 'layers': [{'class_name': 'Dense', 'config': {'name': 'dense_1', 'trainable': True, 'batch_input_shape': (None, 1), 'dtype': 'float32', 'units': 5, 'activation': 'relu', 'use_bias': True, 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'scale': 1.0, 'mode': 'fan_avg', 'distribution': 'uniform', 'seed': None}}, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'kernel_regularizer': None, 'bias_regularizer': None, 'activity_regularizer': None, 'kernel_constraint': None, 'bias_constraint': None}}, {'class_name': 'Dense', 'config': {'name': 'dense_2', 'trainable': True, 'dtype': 'float32', 'units': 1, 'activation': 'sigmoid', 'use_bias': True, 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'scale': 1.0, 'mode': 'fan_avg', 'distribution': 'uniform', 'seed': None}}, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'kernel_regularizer': None, 'bias_regularizer': None, 'activity_regularizer': None, 'kernel_constraint': None, 'bias_constraint': None}}]}
[array([[-0.85931516,  0.5637381 , -0.6789112 ,  0.1663289 ,  0.1063652 ]],
      dtype=float32), array([0., 0., 0., 0., 0.], dtype=float32), array([[ 0.6834357 ],
       [ 0.5921519 ],
       [-0.71200275],
       [ 0.13235688],
       [ 0.589782  ]], dtype=float32), array([0.], dtype=float32)]
Traceback (most recent call last):
  File "C:/Users/sumed/Desktop/DataScience_Projects/NLPProjects/Sarcasm_Detection/sarcasm_detection.py", line 180, in <module>
    model.fit(vector_array_train,y_train,epochs=20,batch_size=1, verbose=1)
  File "C:\Python3.6.6\lib\site-packages\keras\engine\training.py", line 1154, in fit
    batch_size=batch_size)
  File "C:\Python3.6.6\lib\site-packages\keras\engine\training.py", line 579, in _standardize_user_data
    exception_prefix='input')
  File "C:\Python3.6.6\lib\site-packages\keras\engine\training_utils.py", line 145, in standardize_input_data
    str(data_shape))
ValueError: Error when checking input: expected dense_1_input to have shape (1,) but got array with shape (5000,)


Я получаю сообщение об ошибке в последней строке кода: ValueError: Ошибка при проверке ввода: ожидалось, что плотный_1_input будет иметь форму (1,), но получил массив с формой (5000,)

Как новичок ie, я не могу понять, что здесь не так? Пожалуйста, помогите.

1 Ответ

1 голос
/ 01 августа 2020

Когда вы определили модель, вы сказали модели ожидать ввода формы (1,) здесь: model.add(Dense(5,input_shape=(1,),activation="relu"))

измените его на model.add(Dense(5,input_shape=(None,),activation="relu")). В качестве альтернативы вы также можете установить его на 5000 вместо None

...