gpt4 book ai didi

python - 如何为 Keras 中的每个输出应用 sigmoid 函数?

转载 作者:行者123 更新时间:2023-11-28 20:13:56 25 4
gpt4 key购买 nike

这是我的代码的一部分。

model = Sequential()
model.add(Dense(3, input_shape=(4,), activation='softmax'))
model.compile(Adam(lr=0.1),
loss='categorical_crossentropy',
metrics=['accuracy'])

使用这段代码,它会立即将 softmax 应用于所有输出。所以输出表示所有概率。但是,我正在研究非排他性分类火,这意味着我希望输出具有独立的概率。对不起我的英语不好...但我想做的是将 sigmoid 函数应用于每个输出,以便它们具有独立的概率。

最佳答案

不需要像已接受的答案所建议的那样创建 3 个单独的输出。

只用一行就可以达到相同的结果:

model.add(Dense(3, input_shape=(4,), activation='sigmoid'))

您可以只对最后一层使用 'sigmoid' 激活:

from tensorflow.keras.layers import GRU
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation
import numpy as np

from tensorflow.keras.optimizers import Adam

model = Sequential()
model.add(Dense(3, input_shape=(4,), activation='sigmoid'))
model.compile(Adam(lr=0.1),
loss='categorical_crossentropy',
metrics=['accuracy'])

pred = model.predict(np.random.rand(5, 4))
print(pred)

独立概率的输出:

[[0.58463055 0.53531045 0.51800555]
[0.56402034 0.51676977 0.506389 ]
[0.665879 0.58982867 0.5555959 ]
[0.66690147 0.57951677 0.5439698 ]
[0.56204814 0.54893976 0.5488999 ]]

如您所见,类别概率彼此独立。 sigmoid 分别应用于每个类。

关于python - 如何为 Keras 中的每个输出应用 sigmoid 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52090857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com