我正在尝试创建一个模型来返回五个数字序列的平均值,但是当我尝试运行我的 Vanilla LSTM 模型时会返回巨大的损失和空值(损失:0.4943 - acc:0.0000e+00)。
我不知道问题是在重塑还是在我创建的序列中
def generate_data (n_samples, n_features):
output = []
target = []
for j in range (0, n_features):
lista = []
for i in range (0, n_samples):
n = random.uniform(0,1)
lista.append(n)
output.append(lista)
aux = np.average(lista)
target.append((aux))
return np.array(output), np.array(target)
重塑部分
X_train = X_train.reshape(X_train.shape[0], X_train.shape[1], 1)
X_val = X_val.reshape( X_val.shape[0], X_val.shape[1],1)
y_train = y_train.reshape(y_train.shape[0],1)
y_val = y_val.reshape( y_val.shape[0],1)
和模型
# define model
vanilla = Sequential()
vanilla.add(LSTM(10, input_shape =(X_train.shape[1:]))) # (5,1)
vanilla.add(Dense(1, activation='softmax'))
# compile the model
vanilla.compile(loss= 'mae' , optimizer= 'adam', metrics = ['acc'])
print(vanilla.summary())