为了账号安全,请及时绑定邮箱和手机立即绑定

神经网络生成负值

神经网络生成负值

繁花如伊 2023-03-08 11:10:36
我有一个X由均值和标准差组成的数据集,重复 5 次,所以数组中有 10 列并且Y由范围组成:例子:0 到 2020 至 4040 至 6060 至 8080 到 100要将值转换为 0 和 1,每个元素除以其列的最高出现次数,这适用于 X 和 Y目标:使 X 和 Y 生成接下来的 60 个值X = 60 个值的块Y = 每个区块接下来的30个值问题:出于某种原因,我得到负值,看起来我的神经网络出现故障X:[[0.573 0.699 0.412 0.224 0.696 0.512 0.326 0.314 0.79  0.685] [0.456 0.251 0.629 0.523 0.344 0.286 0.8   0.699 0.721 1.   ] ... [0.229 0.148 0.683 0.624 0.222 0.146 0.687 0.732 0.296 0.184] [0.646 0.627 0.204 0.152 0.542 0.632 0.36  0.224 0.291 0.215]]是:[[1.    0.5   0.    0.    0.   ] [1.    0.5   0.    0.    0.   ] ... [1.    0.5   0.    0.    0.   ] [1.    0.5   0.    0.    0.   ]]脚本:model = keras.Sequential(    [        layers.Dense(10, activation="sigmoid", name="hidden-input"),        layers.Dense(5, name="output"),    ])model.compile(optimizer = 'Adam', loss = 'mse', metrics = ['mae'])model.fit(X, Y, epochs = 20, batch_size = 10)print(model.summary())y = model.predict(X)概括:_________________________________________________________________Layer (type)                 Output Shape              Param #   =================================================================hidden-input (Dense)         multiple                  110       _________________________________________________________________output (Dense)               multiple                  55        =================================================================Total params: 165Trainable params: 165Non-trainable params: 0火车:Epoch 1/2048/48 [==============================] - 0s 2ms/sample - loss: 0.3500 - mean_absolute_error: 0.4904...Epoch 20/2048/48 [==============================] - 0s 178us/sample - loss: 0.0283 - mean_absolute_error: 0.1172输出:[[ 8.6036199e-01  4.6452054e-01  1.3958054e-02 -2.3673278e-01 3.2733783e-02] [ 9.7470945e-01  4.6182287e-01  6.4254209e-02 -2.0704785e-01 -2.0927802e-02]  ... [ 7.7844203e-01  4.5801651e-01 -2.5306268e-02 -2.8805625e-01 4.5798883e-02]]
查看完整描述

1 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

您得到负输出是因为您没有在最后一层指定激活,这意味着默认情况下它被设置为None线性激活函数,因此获得负输出的概率不为零。

在第一层中,您选择sigmoid作为激活函数,因此无论输入是什么,它都会产生正值,然后负数来自连接第一层和第二层的权重,它们应该具有负权重,并且具有合适的输入它可以产生负数。


查看完整回答
反对 回复 2023-03-08
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信