python - 未经训练的二元分类 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))
解决方案
您不能将 softmax 与单个输出神经元一起使用,因为它通过除以所有神经元的输出进行归一化,这会产生一个恒定的 1.0 值,这就是您所看到的。
推荐阅读
- android - 无法使用谷歌照片删除带有 ACTION_PICK 的图片
- angularjs - 刷新用户列表视图 - AngularJS
- powershell - 远程注册表项检查器
- cordova - Vue.js - 单击一个页面上的链接时,正在加载的页面上触发链接
- google-cloud-platform - 哪个更好 BigqueryIO.write() 或 bigquery.insertAll() 数据流方法
- windows - Windows 超级终端中的表情符号
- c# - C# TextBox 使用引号来表示整个短语
- javascript - 无法弄清楚为什么我的 math.random 在 for 循环中返回不正确的值
- javascript - 使用画布的 HTML 5
- arrays - Redis reJson:JSON.ARRAYAPPEND 针对持有错误类型值的键返回 WRONGTYPE 操作