gpt4 book ai didi

python - tf.keras `predict()` 得到不同的结果

转载 作者:行者123 更新时间:2023-11-30 09:24:35 24 4
gpt4 key购买 nike

我正在使用 tf.keras 并在具有相同权重初始化的两个 Model 对象上运行一些 predict() 方法。

import numpy as np
import tensorflow as tf
from tensorflow.keras.layers import LSTM, Masking, Input, Embedding, Dense
from tensorflow.keras.models import Model

tf.enable_eager_execution()
np.random.seed(10)

X = np.asarray([
[0, 1, 2, 3, 3],
[0, 0, 1, 1, 1],
[0, 0, 0, 1, 1],
])

y = [
0,
1,
1
]

seq_len = X.shape[1]

inp = Input(shape=[seq_len])
emb = Embedding(4, 10, name='embedding')(inp)

x = emb
x = LSTM(5, return_sequences=False, name='lstm')(x)
out = Dense(1, activation='sigmoid', name='out')(x)

model = Model(inputs=inp, outputs=out)
model.summary()

preds = model.predict(X)

inp = Input(shape=[seq_len])
emb = Embedding(4, 10, name='embedding', weights=model.get_layer('embedding').get_weights()[0])(inp)

x = emb
x = LSTM(5, return_sequences=False, weights=model.get_layer('lstm').get_weights()[0])(x)
out = Dense(1, activation='sigmoid', weights=model.get_layer('out').get_weights()[0])(x)

model_2 = Model(inputs=inp, outputs=out)
model_2.summary()

preds_2 = model_2.predict(X)

print(preds, preds_2)

我不知道为什么,但是两个预测​​的结果是不同的。我在运行 print 函数时得到了这些。你可能会得到一些不同的东西。

[[0.5027414 ]
[0.5019673 ]
[0.50134844]] [[0.5007331]
[0.5002397]
[0.4996575]]

我试图了解 keras 的工作原理。任何解释将不胜感激。谢谢。

注意:此处不涉及学习。我不明白随机性从何而来。

最佳答案

尝试将优化器从adam更改为SGD或其他。我注意到使用相同的模型会得到不同的结果,它解决了问题。另外,请查看 here固定初始权重。顺便说一句,我不知道优化器为什么以及如何影响相同模型的测试时间的结果。

关于python - tf.keras `predict()` 得到不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55158226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com