【问题标题】:The unit count of binary classification in KerasKeras中二进制分类的单位计数
【发布时间】:2020-02-16 09:16:59
【问题描述】:

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

【问题讨论】:

    标签: keras


    【解决方案1】:
    1. 这里有 1 个输入,它是一个包含 100 个值的向量。当然,这对你来说是 100 个特征,但它们被打包为单个输入向量。 您可能有 2 个或更多输入,例如 1 个图像张量 + 1 个特征向量。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-23
      • 2020-07-20
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      相关资源
      最近更新 更多