gpt4 book ai didi

python - 喀拉斯 : Why does Sequential and Model give different outputs?

转载 作者:太空狗 更新时间:2023-10-30 02:53:42 24 4
gpt4 key购买 nike

我正在使用 Keras 计算一个简单的序列分类神经网络。我尝试了不同的模块,发现有两种创建顺序神经网络的方法。

第一种方式是使用Sequential API。这是我在很多教程/文档中发现的最常见的方式。这是代码:

# Sequential Neural Network using Sequential()
model = Sequential()
model.add(Conv1D(filters=32, kernel_size=3, padding='same', activation='relu', input_shape=(27 , 300,)))
model.add(MaxPooling1D(pool_size=2))
model.add(LSTM(100))
model.add(Dense(len(7, activation='softmax'))
model.summary()

第二种方法是使用模型 API 从头开始​​构建去序神经网络。这是代码。

# Sequential neural network using Model()   
inputs = Input(shape=(27 , 300))
x = Conv1D(filters=32, kernel_size=3, padding='same', activation='relu')(inputs)
x = MaxPooling1D(pool_size=2)(x)
x = LSTM(100)(x)
predictions = Dense(7, activation='softmax')(x)
model = Model(inputs=inputs, outputs=predictions)
model.summary()

我用固定种子 (np.random.seed(1337)) 训练它,训练数据相同,但我的输出不同......知道总结的唯一区别是第一层输入与Model API。

有没有人知道为什么这个神经网络不同?如果没有,为什么我会得到不同的结果?

谢谢

最佳答案

您仅在 numpy 中设置随机种子,而不是在 tensorflow 中设置随机种子(以防在您的情况下它是 keras 的后端)。尝试将此添加到您的代码中:

from numpy.random import seed
seed(1337)
from tensorflow import set_random_seed
set_random_seed(1337)

关于这个主题的详细文章here

关于python - 喀拉斯 : Why does Sequential and Model give different outputs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48562099/

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