AttributeError: у объекта 'Sequential' нет атрибута 'ndim' - PullRequest
1 голос
/ 19 января 2020

Я новичок в проектах машинного обучения. Я начал использовать керас для разработки небольших проектов. Недавно я столкнулся с ошибкой в ​​моей программе. Я выполнил следующую программу. Я использовал последовательную модель для разработки:

f=Sequential()
f.add(Dense(64,input_shape=(9,),activation='relu'))
f.add(Dense(128,activation='tanh'))
f.add(Dense(128,activation='relu'))
f.add(Dense(64,activation='tanh'))
f.add(Dense(1,activation='sigmoid'))
f.compile(loss='binary_crossentropy',optimizer='rmsprop',metrics=['accuracy'])
f.fit(d,f,epochs=20,batch_size=10)

Она показывает следующую ошибку:

AttributeError                            Traceback (most recent call last)
<ipython-input-7-4d0153cd53cb> in <module>
     36 f.add(Dense(1,activation='sigmoid'))
     37 f.compile(loss='binary_crossentropy',optimizer='rmsprop',metrics=['accuracy'])
---> 38 f.fit(d,f,epochs=20,batch_size=10)

~\Anaconda3\lib\site-packages\keras\engine\training.py in fit(self, x, y, batch_size, epochs, ` 
 verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, 
 initial_epoch, steps_per_epoch, validation_steps, **kwargs)`
    950             sample_weight=sample_weight,
    951             class_weight=class_weight,
--> 952             batch_size=batch_size)
    953         # Prepare validation data.
    954         do_validation = False



 ~\Anaconda3\lib\site-packages\keras\engine\training.py in _standardize_user_data(self, x, y, 
   sample_weight, class_weight, check_array_lengths, batch_size)
        787                 feed_output_shapes,
        788                 check_batch_axis=False,  # Don't enforce the batch size.
    --> 789                 exception_prefix='target')
        790 
        791             # Generate sample-wise weight values given the `sample_weight` and

    ~\Anaconda3\lib\site-packages\keras\engine\training_utils.py in standardize_input_data(data, names, 
   shapes, check_batch_axis, exception_prefix)
         90         data = data.values if data.__class__.__name__ == 'DataFrame' else data
         91         data = [data]
    ---> 92     data = [standardize_single_array(x) for x in data]
         93 
         94     if len(data) != len(names):

    ~\Anaconda3\lib\site-packages\keras\engine\training_utils.py in <listcomp>(.0)
         90         data = data.values if data.__class__.__name__ == 'DataFrame' else data
         91         data = [data]
    ---> 92     data = [standardize_single_array(x) for x in data]
         93 
         94     if len(data) != len(names):



 ~\Anaconda3\lib\site-packages\keras\engine\training_utils.py in standardize_single_array(x)
         25                 'Got tensor with shape: %s' % str(shape))
         26         return x
    ---> 27     elif x.ndim == 1:
         28         x = np.expand_dims(x, 1)`enter code here`
         29     return x

        AttributeError: 'Sequential' object has no attribute 'ndim'

Это ошибка из-за неправильного кодирования или из-за внутренних проблем?

Любой совет будет полезен.

1 Ответ

0 голосов
/ 19 января 2020

Последняя строка вашего кода неверна

f.fit(d,f,epochs=20,batch_size=10)

Вы должны передать цель вашей проблемы машинного обучения на fit, так как do c означает

fit(x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None, validation_freq=1, max_queue_size=10, workers=1, use_multiprocessing=False)

Попробуйте что-то вроде

f.fit(x,y,epochs=20,batch_size=10)

, где x - это переменная, а y - ваша цель тренировки, такая как x и y в "y = Ax + b" в Линейная модель.

Совет: go Изучите документ Keras или некоторые учебные пособия перед началом работы над проектами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...