在Keras的文档中,例如:
model = Sequential()
model.add(Dense(32, activation='relu', input_dim=100))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
data = np.random.random((1000, 100))
labels = np.random.randint(2, size=(1000, 1))
# Train the model, iterating on the data in batches of 32 samples
model.fit(data, labels, epochs=10, batch_size=32)
我对此模型有2个问题: 1)输入为100个尺寸,因此具有100个特征。为什么说它是“单输入模型”? “单输入”是什么意思?
2)对于二进制分类,为什么Dense(1,activation = sigmoid)参数为'1',而不是'2'?目标是0或1,代表2个类别。
答案 0 :(得分:2)
此处有1个输入,它是100个值的向量。当然,这对您来说是100个功能,但它们打包为单个输入向量。 可能有2个或更多输入,例如1个图像张量+ 1个特征向量。
单个值足以进行二进制分类。正如您正确提到的,您只返回0或1。Sigmoid激活会将所有值缩小到[0; 1]间隔,因此可以将其解释为类选择。