Ошибка атрибута: у объекта ‘Sequential’ нет атрибута ‘score’

#python #numpy #attributeerror #conv-neural-network #sequential

#python #numpy #ошибка атрибута #conv-нейронная сеть #последовательный

Вопрос:

я работал со сверточными нейронными сетями, при использовании sequential у меня возникли проблемы с обучением данных. используя sequential, невозможно получить лучший результат??

 from numpy import array
from numpy import reshape
import numpy as np
def model_CNN(X_train,Y_train,X_test,Y_test):

    model = Sequential()

    model.add(Conv1D(filters=512, kernel_size=32, padding='same', kernel_initializer='normal', activation='relu', input_shape=(256, 1)))
    model.add(Conv1D(filters=512, kernel_size=32, padding='same', kernel_initializer='normal', activation='relu'))
    model.add(Dropout(0.2)) # This is the dropout layer. It's main function is to inactivate 20% of neurons in order to prevent overfitting
    model.add(Conv1D(filters=256, kernel_size=32, padding='same', kernel_initializer='normal', activation='relu'))
    model.add(Dropout(0.2))
    model.add(Conv1D(filters=256, kernel_size=32, padding='same', kernel_initializer='normal', activation='relu'))

    model.add(Flatten())

    optimizer = keras.optimizers.SGD(lr=0.01, momentum=0.5)
    model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=['accuracy'])
    convolutional_model = model.fit(X_train, Y_train, epochs=5,batch_size=64,verbose=1, validation_data=(X_test, Y_test))
    print(convolutional_model.score(X_train,Y_train))
    model.summary()
    return model
  

Трассировка получена как ошибка:

 AttributeError                            Traceback (most recent call last)
<ipython-input-50-9a2005301144> in <module>()
      1 
----> 2 convolutional_model= model_CNN(X_train,Y_train,X_test,Y_test)
      3 print(convolutional_model)

<ipython-input-49-bac0ec08f100> in model_CNN(X_train, Y_train, X_test, Y_test)
     34     model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=['accuracy'])
     35     convolutional_model = model.fit(X_train, Y_train, epochs=5,batch_size=64,verbose=1, validation_data=(X_test, Y_test))
---> 36     print(convolutional_model.score(X_train,Y_train))
     37     # Print the summary of the model
     38     model.summary()

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

поскольку я новичок в python, у меня возникли проблемы и я проверил различные ресурсы, но ничего не помогло, пожалуйста, направьте меня…
я получил ошибку из этой строки

 print(convolutional_model.score(X_train,Y_train))
  

если это невозможно, пожалуйста, укажите мне лучший вариант…

Ответ №1:

Вы должны использовать model not convolutional_model object. fit функция возвращает объект истории, который содержит некоторую информацию о фазе обучения, такую как потеря, точность.. это зависит от вашей функции потерь и метрических функций.

Можете ли вы попробовать это?

print(model.evaluate(X_train, Y_train))

Комментарии:

1. Я исправил блок кода, вы можете это проверить? @ShibinRobin

2. Проблема может заключаться в использовании круглых скобок. Попробуйте это model.evaluate(X_train, Y_train)

3. Извините, но я не понимаю, как получить эту no attribute ошибку. Я думаю, вам следует перепроверить свою реализацию и запустить ее снова.

4. Я на сто процентов уверен, вам нужно использовать этот блок кода score = model.evaluate(X_train, Y_train); print("Test loss:", score[0]); print("Test accuracy:", score[1]) , и у вас есть некоторые другие проблемы. Я могу помочь, если вы отправите всю реализацию кода

5. я проверил это …. и он работает нормально… Спасибо …. значение данных изменено оптимизатором, что привело к неполадкам в вашем коде… спасибо за усилия @Cenk Bircanoglu