【发布时间】:2019-05-27 11:58:43
【问题描述】:
我正在学习 TensorFlow 和 LSTM,我想知道为什么我的预测输出在我训练它以返回一个值时会有多个值。我的目标是在使用数组进行情绪分析训练后得到一个介于 0 和 1 之间的值。
训练输入数据如下:
[[59, 21, ... 118, 194], ... [12, 110, ... 231, 127]]
所有输入数组长度相同,用0填充。训练目标数据如下:
[1.0, 0.5, 0.0, 1.0, 0.0 ...]
型号:
model = Sequential()
model.add(Embedding(input_length, 64, mask_zero=True))
model.add(LSTM(100))
model.add(Dense(1, activation=tf.nn.sigmoid))
为什么预测似乎是一次评估每个单独的值而不是整个数组?
model.predict([192])
# Returns [[0.5491102]]
model.predict([192, 25])
# Returns [[0.5491102, 0.4923803]]
model.predict([192, 25, 651])
# Returns [[0.5491102, 0.4923803, 0.53853387]]
我不想取输出的平均值,因为输入数组中的值之间的关系对于情绪分析很重要。如果我正在训练预测单个值,我不明白为什么不输出单个值。我是 TensorFlow、Keras 和分层神经网络的新手,所以我确信我遗漏了一些明显的东西。
【问题讨论】:
-
你试过
model.predict([[192, 25]])吗? -
@pooyan 是的,同样的输出。
标签: python tensorflow machine-learning keras lstm