赞
踩
代码功能:对山东某地区历史温度数据进行BP神经网络训练,通过前三小时温度数据,预测第四小时温度值。
数据来源:2016年4月份山东某地区温度数据,共30*24小时。1日到20日(20*24小时)数据为训练数据集,21到30日(10*24小时)数据为测试数据集。
选用典型的三层神经网路(输入层+一层隐含层+输出层),节点数设置为3-7-1,详细参数见程序:
- d=3#输入节点个数
- l=1#输出节点个数
- q=2*d+1#隐层个数,采用经验公式2d+1
- train_num=480#训练数据个数
- test_num=240#测试数据个数
- eta=0.5#学习率
- error=0.002#精度
输入层到隐含层的权值为w1,矩阵大小为d*q;隐含层到输出层的权值为w2,矩阵大小为q*l;隐含层阈值为b1,输出层阈值为b2。
- w1= tf.Variable(tf.random_normal([d, q], stddev=1, seed=1))#seed设定随机种子,保证每次初始化相同数据
- b1=tf.Variable(tf.constant(0.0,shape=[q]))
- w2= tf.Variable(tf.random_normal([q, l], stddev=1, seed=1))
- b2=tf.Variable(tf.constant(0.0,shape=[l]))
- #输入占位
- x = tf.placeholder(tf.float32, shape=(None, d))
- y_= tf.placeholder(tf.float32, shape=(None, l))
-
- #构建图:前向传播
- a=tf.nn.sigmoid(tf.matmul(x,w1)+b1)#sigmoid激活函数
- y=tf.nn.sigmoid(tf.matmul(a,w2)+b2)
- mse = tf.reduce_mean(tf.square(y_ - y))#损失函数采用均方误差
- train_step = tf.train.AdamOp
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。