# TrajectoryPrediction
**Repository Path**: wenb11/TrajectoryPrediction
## Basic Information
- **Project Name**: TrajectoryPrediction
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-10
- **Last Updated**: 2026-04-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 此文档用于解释航迹预测程序的执行流程
RSong
此程序基于循环神经网络(GRU和LSTM)从历史航迹数据中学习运动模式并用于预测未知的航迹,
程序的输入为固定长度的历史轨迹点序列(由初始航迹通过滑窗得到),
经过一层GRU和两层LSTM以及一层全连接层后得到预测输出,
输出结果为下一时间间隔(考虑的为6秒)的目标位置(由经纬度坐标描述),
除网络结构外,其中重要的超参数为“序列长度”,其决定了模式的挖掘范围,
不同的序列长度可以从历史数据中构造不同的训练样本。
## 依赖项
```text
|library version|
|---------------------------------|
|python 3.7.3 |
|numpy 1.16.4 |
|matplotlib 3.1.3 |
|tensorflow 1.13.1 |
|keras 2.2.4 |
```
## 目录树
```text
TrajectoryPrediction:.
│ README.md
│
├─data
│ │ generate_data.m
│ │ 空中水面水下航迹列标题.txt
│ │
│ ├─test
│ │ test.lst
│ │ trajectory01-rst.npz
│ │ trajectory01.csv
│ │
│ └─train
│ mean_std.txt
│ train.lst
│ trajectory01.csv
│
├─log
│ rnn-20200618.log
│
├─model
│ model-history.dict
│ model-lossFigure.png
│ model-weightsFinal.h5
│ model.json
│ model.png
│
└─src
│ rnn.py
│ test_rnn.py
│ utils.py
```
## Train
### 查看帮助信息
```shell script
$ python rnn.py --help
usage: rnn.py [-h] --list_path LIST_PATH [--valid_ratio VALID_RATIO]
[--lookback LOOKBACK] [--step STEP] [--delay DELAY]
[--model_name MODEL_NAME] [--batch_size BATCH_SIZE]
[--epochs EPOCHS] [--gpu_mem GPU_MEM]
optional arguments:
-h, --help show this help message and exit
--list_path LIST_PATH
[str], list file path for train trajectories, each row
in the list file represents a trajectory
--valid_ratio VALID_RATIO
[float], split @valid_ratio data from train_data as
validation set, default value is "0.2"
--lookback LOOKBACK [int], how long the historical data be seen back,
default value is "600 (seconds)"
--step STEP [int], sampling interval, default value is "6
(seconds)"
--delay DELAY [int], predicting data after @delay seconds, default
value is "6 (seconds)"
--model_name MODEL_NAME
[str], the mame of your trained model, default value
is "model"
--batch_size BATCH_SIZE
[int], training batch_size, dafault value is "128"
--epochs EPOCHS [int], training epochs, dafault value is "50"
--gpu_mem GPU_MEM [int], whether GPU memory is used or not, dafault
value is "0 (Mib)"
```
### example
```shell script
$ cd src/
$ python rnn.py --list_path ../data/train/train.lst --epochs 50 > ../log/you_log_name.log
```
## Test
### 查看帮助信息
```shell script
$ python test_rnn.py --help
usage: test_rnn.py [-h] --list_path LIST_PATH [--lookback LOOKBACK]
[--step STEP] [--delay DELAY] [--model_name MODEL_NAME]
optional arguments:
-h, --help show this help message and exit
--list_path LIST_PATH
[str], list file path for test trajectories, each row
represents a trajectory
--lookback LOOKBACK [int], how long the historical data be seen back,
default value is "600 (seconds)"
--step STEP [int], sampling interval, default value is "6
(seconds)"
--delay DELAY [int], predicting data after @delay seconds, default
value is "6 (seconds)"
--model_name MODEL_NAME
[str], the mame of your trained model, default value
is "model"
```
### example
```shell script
$ cd src/
$ python test_rnn.py --list_path ../data/test/test.lst
```
## 网络
### 参数量
```text
data shape: (33321, 4)
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
gru_1 (GRU) (None, None, 32) 3552
_________________________________________________________________
lstm_1 (LSTM) (None, None, 32) 8320
_________________________________________________________________
lstm_2 (LSTM) (None, 64) 24832
_________________________________________________________________
dense_1 (Dense) (None, 2) 130
=================================================================
Total params: 36,834
Trainable params: 36,834
Non-trainable params: 0
```