AttributeError: 'function' object has no attribute 'compile'
AttributeError: 'function' object has no attribute 'compile'
我一直遇到这个属性错误。请给我解决问题的任何想法。我可以分享整个代码
def model(input_shape):
model = keras.Sequential()
model.add(keras.layers.LSTM(64, input_shape=(1,9), return_sequences=True))
model.add(keras.layers.LSTM(64))
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dropout(0.3))
model.add(keras.layers.Dense(10, activation='softmax'))
return model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
ttributeError Traceback(最后一次调用)
在 [67] 中输入 ()
----> 1 model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
2 model.summary() |
AttributeError: 'function' 对象没有属性 'compile'
函数和变量同名,导致问题。您可以重命名变量或函数。
def model(input_shape):
model = keras.Sequential()
model.add(keras.layers.LSTM(64, input_shape=(1,9), return_sequences=True))
model.add(keras.layers.LSTM(64))
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dropout(0.3))
model.add(keras.layers.Dense(10, activation='softmax'))
return model
my_model = model() # your initializer
my_model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
my_model.summary()
您已将 model
一词用作函数的名称。这是允许的(因为 model
不是 Python 中的保留字),但这意味着当你使用 model.compile()
时,解释器假定你想调用你调用的属性“模型”,那里没有这样的属性。
解决方案:给该函数另一个名称,使“model”一词仅指模型对象,它有一个可以调用的 compile
方法。或者,相反,如果需要,可以使用“model”作为函数,然后给模型另一个名称,然后调用 compile()
。
我一直遇到这个属性错误。请给我解决问题的任何想法。我可以分享整个代码
def model(input_shape):
model = keras.Sequential()
model.add(keras.layers.LSTM(64, input_shape=(1,9), return_sequences=True))
model.add(keras.layers.LSTM(64))
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dropout(0.3))
model.add(keras.layers.Dense(10, activation='softmax'))
return model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
ttributeError Traceback(最后一次调用)
在 [67] 中输入
AttributeError: 'function' 对象没有属性 'compile'
函数和变量同名,导致问题。您可以重命名变量或函数。
def model(input_shape):
model = keras.Sequential()
model.add(keras.layers.LSTM(64, input_shape=(1,9), return_sequences=True))
model.add(keras.layers.LSTM(64))
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dropout(0.3))
model.add(keras.layers.Dense(10, activation='softmax'))
return model
my_model = model() # your initializer
my_model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
my_model.summary()
您已将 model
一词用作函数的名称。这是允许的(因为 model
不是 Python 中的保留字),但这意味着当你使用 model.compile()
时,解释器假定你想调用你调用的属性“模型”,那里没有这样的属性。
解决方案:给该函数另一个名称,使“model”一词仅指模型对象,它有一个可以调用的 compile
方法。或者,相反,如果需要,可以使用“model”作为函数,然后给模型另一个名称,然后调用 compile()
。