【发布时间】:2020-05-25 07:26:22
【问题描述】:
我正在练习 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/20 168/168 [==============================] - 1s 6ms/步 - 损失:0.4345 - 准确度:0.5655 - val_loss :0.5000 - val_accuracy:0.5000 ...
20/20 纪元 168/168 [===============================] - 0s 315us/步 - 损失:0.4345 - 准确度:0.5655 - val_loss : 0.5000 - val_accuracy: 0.5000
【问题讨论】:
-
我在这个问题上找到了一个很好的解释:dlology.com/blog/…
标签: tensorflow keras recurrent-neural-network