这是我代码的一部分。
model = Sequential()model.add(Dense(3, input_shape=(4,), activation='softmax'))model.compile(Adam(lr=0.1), loss='categorical_crossentropy', metrics=['accuracy'])
使用这段代码,会一次性对所有输出应用Softmax函数。因此,输出表示的是所有类别的概率。然而,我正在处理非互斥分类器,这意味着我希望输出具有独立的概率。对不起,我的英语不好…但我想做的是对每个输出应用Sigmoid函数,以便它们具有独立的概率。
回答:
你可以尝试使用函数式API来创建一个具有n个输出的模型,其中每个输出都使用sigmoid
激活函数。
你可以这样做
in = Input(shape=(4, ))dense_1 = Dense(units=4, activation='relu')(in)out_1 = Dense(units=1, activation='sigmoid')(dense_1)out_2 = Dense(units=1, activation='sigmoid')(dense_1)out_3 = Dense(units=1, activation='sigmoid')(dense_1)model = Model(inputs=[in], outputs=[out_1, out_2, out_3])