【问题标题】:keras limit the values of the output layer to a vector of valueskeras 将输出层的值限制为值向量
【发布时间】:2021-05-12 09:41:44
【问题描述】:

我将数组X 输入为:

[[12,13,14],
..........
[32,15,19],
[23,16,17]
]

我的输出y 为:

[[5]
..........
[7],
[9]
]

我确信 y 在所有情况下都只取值 5,7,9

谁能告诉我哪种型号最适合我使用。 目前我用过:

  model = Sequential()
  model.add(Dense(len(sequence)*10, input_shape=(len(sequence),), activation='relu')) 
  model.add(Dense(1, activation='relu')) 
  model.compile(loss='mse', optimizer='adam')

然后当我适应时:

yhat1 = md1.predict(xCheck)

我得到的输出是 3、5、11,这不适合我。

【问题讨论】:

  • 如果你有固定的输出,创建一个有 3 个输出的分类器,代表一个热值 5,7,9
  • 我不喜欢我的坏模特。怎么变?
  • 使用 model.add(Dense(3, activation='softmax')) 代替 model.add(Dense(1, activation='relu')) 并更改 one hot format 中的标签
  • 没有输出是 7 或 5 或 9 ==== 1 个数字!不是数组。但有 9 个或 5 个或 7 个
  • 对不起,我听不懂你在说什么。您必须从 3 个中选择最高的输出,更多地查看“使用神经网络进行分类”。如果数组中的第一个值最高,则输出为5,如果第二个值最高,则输出为7,如果最后一个最高,则输出为9

标签: tensorflow keras keras-layer


【解决方案1】:

是的,我明白了。如果您按照我告诉您的方式更改最后一层和标签,您将获得所需的输出。否则,按照您的方法,唯一的方法就是训练更多。我建议你多看看这个理论。

【讨论】:

    猜你喜欢
    • 2020-09-09
    • 1970-01-01
    • 2018-02-12
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    相关资源
    最近更新 更多