【发布时间】:2023-04-10 15:36:01
【问题描述】:
我试图从最后一层是 softmax 层的网络中获取 softmax 概率,当我使用 model.predict() 时,我得到的是类而不是概率。谁能告诉如何获得概率。
model = Sequential()
model.add(Convolution2D(32, 3, 3,input_shape=(32, 32, 3)))
model.add(MaxPooling2D((2, 2)))
model.add(Dropout(0.5))
model.add(Activation('relu'))
model.add(Convolution2D(32, 3, 3))
model.add(MaxPooling2D((2, 2)))
model.add(Dropout(0.5))
model.add(Activation('relu'))
model.add(Flatten())
model.add(Dense(128))
model.add(Activation('relu'))
model.add(Dense(43))
model.add(Activation('softmax'))
【问题讨论】:
-
请提供更多信息,如果网络有 softmax 输出,那么 model.predict 将返回这些概率。如果您没有看到概率,那么代码中有问题。
-
你对“类”和“概率”的理解是什么? Softmax 将始终返回所有类的“机会”,总和为 1。
-
请显示您的模型构建代码
-
我的网是:.我的网是:model = Sequential() model.add(Convolution2D(32, 3, 3,input_shape=(32, 32, 3))) model.add(MaxPooling2D ((2, 2))) model.add(Dropout(0.5)) model.add(Activation('relu')) model.add(Convolution2D(32, 3, 3)) model.add(MaxPooling2D((2, 2))) model.add(Dropout(0.5)) model.add(Activation('relu')) model.add(Flatten()) model.add(Dense(128)) model.add(Activation('relu' )) model.add(Dense(43)) model.add(Activation('softmax'))
-
当我使用 model.predict(pics_data[0:6], batch_size=32, verbose=1) 我得到 0 和 1 而不是概率(我认为是直接预测的类)跨度>