所以我的任務是預測序列。我在時間 t 有 x,y,z 值,它們是浮點型。我必須預測在時間 (t + 1) 具有值 x,y,z 的序列。TIME_STEP = 10N_FEATURES = N_CLASSES = 3LEARNING_RATE = 0.01EPOCHS = 50BATCH_SIZE = 10x = tf.placeholder(tf.float32, shape = [None, N_FEATURES], name = 'name')y = tf.placeholder(tf.float32, shape = [N_CLASSES], name = 'labels')然后我有我的 lstm 模型,它看起來像: x = tf.transpose(x, [1, 0]) x = tf.reshape(x, [-1, num_features]) hidden = tf.nn.relu(tf.matmul(x, self.h_W) + self.h_biases) hidden = tf.split(hidden, self.time_step) lstm_layers = [tf.contrib.rnn.BasicLSTMCell(self.hidden_units, forget_bias=1.0) for _ in range(2)] lstm_layers = tf.contrib.rnn.MultiRNNCell(lstm_layers) outputs, _ = tf.contrib.rnn.static_rnn(lstm_layers, hidden, dtype = tf.float32) lstm_output = outputs[-1]最后我定義了損失函數和優化器loss = tf.reduce_mean(tf.square(y - y_pred))opt = tf.train.AdamOptimizer(learning_rate = LEARNING_RATE).minimize(loss)現在我想用前 10 個值來預測第 11 個值。所以我運行會話for time in range(0, len(X)): sess.run(opt, feed_dict = {x : X[time: time + TIME_STEP ], y : Y[time + TIME_STEP + 1]})但是當我檢查這個函數的損失時,它有很大的價值,比如 99400290.0,它會隨著時間的推移而增加。這是我第一次預測序列,所以我想我一定遺漏了一些重要的東西
1 回答

莫回無
TA貢獻1865條經驗 獲得超7個贊
是的,您應該標準化您的真實世界輸入數據,并且它應該使用您在訓練集上使用的相同縮放(相同參數)。
原因是,現在您的模型已接受訓練以接受特定形狀和比例的輸入,并且要使其按預期執行,您必須將測試輸入擴展到它。
(很抱歉將此作為答案發布,沒有足夠的代表發表評論)
添加回答
舉報
0/150
提交
取消