#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