Tensorflow:使用高级接口TFLearn用于数据预测

这篇博客介绍了在TensorFlow 1.10版本中,如何利用高级接口TFLearn进行数据预测。内容提到了在不同版本的TensorFlow中,数据解包操作的差异,指出在1.10版本中应使用`tf.unstack(X, axis=1)`,而在较低版本中则可以使用`unpack`方法。" 133802380,7337247,Python中时间序列预测入门,"['大数据', '人工智能', 'Python', '数据预处理', '时间序列分析']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import numpy as np

import tensorflow as tf

import matplotlib.pyplot as plt
learn=tf.contrib.learn
HIDDEN_SIZE = 30
NUM_LAYERS = 2 
TIMESTEPS = 10
TRAINING_STEPS = 10000
BATCH_SIZE = 32
TRAINING_EXAMPLES = 10000
TESTING_EXAMPLES = 10000
SAMPLE_GAP = 0.01

def generate_data(seq):
    X = []
    Y = []
    for i in range(len(seq)-TIMESTEPS-1):
        X.append([seq[i:i+TIMESTEPS]])
        Y.append([seq[i+TIMESTEPS]])
    return np.array(X,dtype = np.float32), np.array(Y,dtype = np.float32)
def lstm_model(X,Y):
    lstm_cell = tf.nn.rnn_cell.BasicLSTMCell(HIDDEN_SIZE)
    cell = tf.nn.rnn_cell.MultiRNNCell([lstm_cell]*NUM_LAYERS)
    x_= tf.unstack(X,axis = 1)
    
    output, _ =tf.nn.rnn(cell,x_,dtype=tf.float32)
    output = output[-1]
    prediction,loss = learn.modeks.linear_regression(output,Y)
    
    train_op = tf.contrib.layers.optimize_loss(
            loss,tf.contrib.framework.get_global_step(),
            optimizer= "Adagrad", learning_rate= 0.1)
    return prediction, loss,train_op
regressor = learn.Estimator(model_fn= lstm_model)

test_start =TRAINING_EXAMPLES*SAMPLE_GAP
test_end =(TRAINING_EXAMPLES+TESTING_EXAMPLES)*SAMPLE_GAP
train_X,train_Y = generate_data(np.sin(np.linspace(0
        ,test_start,TRAINING_EXAMPLES,dtype=np.float32)))
test_X,test_Y = generate_data(np.sin(np.linspace(
        test_start,test_end,TESTING_EXAMPLES,dtype=np.float32)))

regressor.fit(train_X,train_Y,batch_size=BATCH_SIZE,steps=TRAINING_STEPS)
predicted = [[pred] for pred in regressor.predict(test_X)]

rmse = np.sqrt(((predicted-test_Y)**2).mean(axis=0))
print("Mean Square Error is :%f"%rmse[0])

fig = plt.figure()
plot_predicted = plt.plot(predicted,label ='predicted')
plot_test=plt.plot(test_Y,label='real_sin')
plt.legend([plot_predicted,plot_test],['predicted','real_sin'])

 x_= tf.unstack(X,axis = 1)版本不同,使用不同,tensorflow=1.10,而低版本使用unpack即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值