当前位置:   article > 正文

BP神经网络实例及代码分析(python+tensorflow实现)_bp神经网络python代码tensorflow

bp神经网络python代码tensorflow

代码功能:对山东某地区历史温度数据进行BP神经网络训练,通过前三小时温度数据,预测第四小时温度值。

数据来源:2016年4月份山东某地区温度数据,共30*24小时。1日到20日(20*24小时)数据为训练数据集,21到30日(10*24小时)数据为测试数据集。

1.定义神经网络结构及参数

选用典型的三层神经网路(输入层+一层隐含层+输出层),节点数设置为3-7-1,详细参数见程序:

  1. d=3#输入节点个数
  2. l=1#输出节点个数
  3. q=2*d+1#隐层个数,采用经验公式2d+1
  4. train_num=480#训练数据个数
  5. test_num=240#测试数据个数
  6. eta=0.5#学习率
  7. error=0.002#精度

2.初始化权值和阈值

输入层到隐含层的权值为w1,矩阵大小为d*q;隐含层到输出层的权值为w2,矩阵大小为q*l;隐含层阈值为b1,输出层阈值为b2。

  1. w1= tf.Variable(tf.random_normal([d, q], stddev=1, seed=1))#seed设定随机种子,保证每次初始化相同数据
  2. b1=tf.Variable(tf.constant(0.0,shape=[q]))
  3. w2= tf.Variable(tf.random_normal([q, l], stddev=1, seed=1))
  4. b2=tf.Variable(tf.constant(0.0,shape=[l]))

3.构建图

  1. #输入占位
  2. x = tf.placeholder(tf.float32, shape=(None, d))
  3. y_= tf.placeholder(tf.float32, shape=(None, l))
  4. #构建图:前向传播
  5. a=tf.nn.sigmoid(tf.matmul(x,w1)+b1)#sigmoid激活函数
  6. y=tf.nn.sigmoid(tf.matmul(a,w2)+b2)
  7. mse = tf.reduce_mean(tf.square(y_ - y))#损失函数采用均方误差
  8. train_step = tf.train.AdamOp
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/358966
推荐阅读
相关标签
  

闽ICP备14008679号