【发布时间】:2020-01-20 11:35:20
【问题描述】:
我尝试使用 Keras 创建一个多标签分类器。训练数据格式如下:
X_train
f1 f2 f3
1 1 5
0 2 4
1 0 4
y_train:
c1 c2
0 1
1 1
0 0
这是我用来构建模型的代码:
from keras.models import Sequential
from keras.layers import Dense
import math
def softmax(z):
z_exp = [math.exp(i) for i in z]
sum_z_exp = sum(z_exp)
return [i / sum_z_exp for i in z_exp]
nn = Sequential()
nn.add(Dense(10, activation="relu", input_shape=(10,)))
nn.add(Dense(2, activation="sigmoid"))
nn.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
n = 10000
model.fit(X_train.values, y_train.values, batch_size=16, epochs=5, verbose=1, validation_split=0.1)
当我运行此代码时,它会失败并显示以下消息:
AttributeError: 'Sequential' 对象没有属性 '_feed_input_names'
【问题讨论】:
-
一些提示,使用
activation='softmax'而不是使用自定义的softmax。那是因为您没有在该函数中使用 Keras 符号张量。但是由于这段代码似乎没有使用这个激活,所以问题很可能出在X_train.values和Y_train.values。确保它们都是带有print(type(X_train.values))的 numpy 数组。
标签: python tensorflow keras