LSTM实现对sin函数的预测
import tensorflow as tf
import numpy as np
from matplotlib import pyplot as plt
hidden_size=30
num_layer=2
time_stept=10
training_stept=10000
batch_size=32
train_example=10000
test_example=1000
sample_gap=0.01
def generate_data(seq):#对数据进行处理
X=[]
y=[]
for i in range(len(seq-time_stept)-time_stept):
X.append([seq[i:i+time_stept]])
y.append([seq[i+time_stept]])
return np.array(X),np.array(y)
def lstm_model(X,y,is_training):
cell=tf.nn.rnn_cell.MultiRNNCell([tf.nn.rnn_cell.BasicLSTMCell(hidden_size) for _ in range(num_layer)])
outputs,_=tf.nn.dynamic_rnn(cell,X,dtype=tf.float32)
output=outputs[:,-1,:]
predictions=tf.contrib.layers.fully_connected(output,1,activation_fn=None)
if not is_training: