gpt4 book ai didi

tensorflow - RNN 模型不学习任何东西

转载 作者:行者123 更新时间:2023-12-04 04:09:30 26 4
gpt4 key购买 nike

我正在用 RNN 练习。我随机创建 5 个整数。如果第一个整数是奇数,则 y 值为 1,否则 y 为 0(因此,只有第一个 x 有效)。问题是,当我运行这个模型时,它不会“学习”:val_loss 和 val_accuracy 不会随着时间的推移而改变。会是什么原因呢?

from keras.layers import SimpleRNN, LSTM, GRU, Dropout, Dense
from keras.models import Sequential
import numpy as np

data_len = 300
x = []
y = []
for i in range(data_len):
a = np.random.randint(1,10,5)
if a[0] % 2 == 0:
y.append('0')
else:
y.append('1')

a = a.reshape(5, 1)
x.append(a)
print(x)

X = np.array(x)
Y = np.array(y)

model = Sequential()
model.add(GRU(units=24, activation='relu', return_sequences=True, input_shape=[5,1]))
model.add(Dropout(rate=0.5))
model.add(GRU(units=12, activation='relu'))
model.add(Dropout(rate=0.5))
model.add(Dense(units=1, activation='softmax'))

model.compile(optimizer='adam', loss='mse', metrics=['accuracy'])
model.summary()

history = model.fit(X[:210], Y[:210], epochs=20, validation_split=0.2)

纪元 1/20168/168 [==============================] - 1 秒 6 毫秒/步 - 损失:0.4345 - 精度:0.5655 - val_loss :0.5000 - val_accuracy:0.5000...

纪元 20/20168/168 [==============================] - 0s 315us/步 - 损失:0.4345 - 精度:0.5655 - val_loss : 0.5000 - val_accuracy: 0.5000

最佳答案

您正在对 1 个神经元使用 softmax 激活,它总是返回 [1]。使用具有 1 个神经元的 sigmoid 激活 进行二元分类,对多个神经元使用 softmax 进行多类分类

关于tensorflow - RNN 模型不学习任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61997645/

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