gpt4 book ai didi

python-3.x - 如何使用 LSTM 对图像进行时间序列预测?

转载 作者:行者123 更新时间:2023-12-04 11:02:02 24 4
gpt4 key购买 nike

  • 我有 20 张不同时间段的图像
  • 在将它们作为数组读取后,我有大约 100000 个像素,其值在 20 个时间段内已知,我必须使用 LSTM 预测每个像素的第 21 个时间段值。
  • 我正在使用具有 5 个时间值作为输入的 X_train 来训练我的模型,而 Y_train 使用第 6 个时间值。
  • 如果我将 X=[500,450,390,350,300] 作为输入,我想要的输出类似于 Y=[260]。
  • 我有一个所有形状的图像数组 (100769,20)

  • 我的代码如下,请提出一些建议。
    使用的库
    from keras.models import Sequential
    from keras.layers import Dense
    from keras.layers import LSTM
    from keras.layers import Dropout
    from keras.backend import clear_session
    创建训练数据 5 年
    for c in range(100769):
    X=[]
    Y=[]
    for d in range (15):
    x=res_arr[c][d:d+5]
    X.append(x)
    y=res_arr[c][d+5]
    Y.append(y)
    Keras 使用
    Initialising the RNN
    X_train=(1/6300)*(np.array(X))
    X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1],1))
    Y=np.reshape(Y,(15,1))
    Y_train=(1/6300)*(Y)
    初始化 RNN
    regressor = Sequential()
    添加第一个 LSTM 层和一些 Dropout 正则化
    regressor.add(LSTM(units = 30, return_sequences = True,activation='relu',input_shape = (X_train.shape[1], 1)))
    regressor.add(Dropout(0.2))
    添加第二个 LSTM 层和一些 Dropout 正则化
    regressor.add(LSTM(units = 30, activation='relu',return_sequences = True))
    regressor.add(Dropout(0.2))
    添加第三个 LSTM 层和一些 Dropout 正则化
    regressor.add(LSTM(units = 30,activation='relu', return_sequences = True))
    regressor.add(Dropout(0.2))
    添加第四个 LSTM 层和一些 Dropout 正则化
    regressor.add(LSTM(units = 30,activation='relu'))
    regressor.add(Dropout(0.2))
    添加输出层
    regressor.add(Dense(units = 1,activation='relu'))
    编译RNN
    regressor.compile(optimizer = 'Adam', loss = 'mean_squared_error',metrics=['accuracy'])
    将 RNN 拟合到训练集
    regressor.fit(X_train, Y_train)
    _, accuracy = regressor.evaluate(X_train, Y_train)
    #print('Accuracy: %.2f' % (accuracy*100))
    acc.append(accuracy*100)
    模型总结
    regressor.summary()
    Model: "sequential_1"
    _________________________________________________________________
    Layer (type) Output Shape Param #
    =================================================================
    lstm_1 (LSTM) (None, 5, 30) 3840
    _________________________________________________________________
    dropout_1 (Dropout) (None, 5, 30) 0
    _________________________________________________________________
    lstm_2 (LSTM) (None, 5, 30) 7320
    _________________________________________________________________
    dropout_2 (Dropout) (None, 5, 30) 0
    _________________________________________________________________
    lstm_3 (LSTM) (None, 5, 30) 7320
    _________________________________________________________________
    dropout_3 (Dropout) (None, 5, 30) 0
    _________________________________________________________________
    lstm_4 (LSTM) (None, 30) 7320
    _________________________________________________________________
    dropout_4 (Dropout) (None, 30) 0
    _________________________________________________________________
    dense_1 (Dense) (None, 1) 31
    =================================================================
    Total params: 25,831
    Trainable params: 25,831
    Non-trainable params: 0

    最佳答案

    将最后一层更改为

    regressor.add(Dense(units = 1,activation='linear'))

    关于python-3.x - 如何使用 LSTM 对图像进行时间序列预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58747190/

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