猿问

未经训练的二元分类 keras 模型的输出为 1

我正在尝试构建一个带有一个隐藏层的小型神经网络。我希望在训练之前,模型会输出看起来随机的值。但是对于所有输入,我得到 1.0 作为输出。为什么会这样?


import tensorflow as tf

from tensorflow import keras

import numpy as np


def NewModel():

  return keras.Sequential([

    keras.layers.Dense(20, input_shape=(18,), activation=tf.nn.relu, name="inputLayer"),

    keras.layers.Dense(1, activation=tf.nn.softmax, name="outputLayer"),

    ])


model = NewModel()

i = np.array([[0.2]*18])

print(model.predict(i))


智慧大石
浏览 207回答 1
1回答

侃侃无极

您不能对单个输出神经元使用 softmax,因为它通过除以所有神经元的输出进行归一化,这会产生一个恒定的 1.0 值,这就是您所看到的。
随时随地看视频慕课网APP

相关分类

Python
我要回答