Keras中的二进制分类单位计数

时间:2019-10-19 18:16:33

标签: keras

在Keras的文档中,例如:

对于具有2类(二进制分类)的单输入模型:

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个类别。

1 个答案:

答案 0 :(得分:2)

  1. 此处有1个输入,它是100个值的向量。当然,这对您来说是100个功能,但它们打包为单个输入向量。 可能有2个或更多输入,例如1个图像张量+ 1个特征向量。

  2. 单个值足以进行二进制分类。正如您正确提到的,您只返回0或1。Sigmoid激活会将所有值缩小到[0; 1]间隔,因此可以将其解释为类选择。

相关问题