• 大小: 25KB
    文件类型: .zip
    金币: 2
    下载: 2 次
    发布日期: 2021-07-20
  • 语言: Python
  • 标签: bp  气温预测  

资源简介

BP神经网络实现气温学习和预测代码及代码分析(python+tensflow),用python+tensflow实现气温的预测,本代码包含数据集,不用重新下载,可以自行设置测试学习次数,误差范围,点开导包,运行即可使用,并且附上了因版本不同,可能出现导包错误的解决方法。我实在是即稳又贴心。

资源截图

代码片段和文件信息

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
from numpy.random import RandomState
import pandas as pd
import numpy as np
import time

#定义神经网络的参数
d=3#输入节点个数
l=1#输出节点个数
q=2*d+1#隐层个数采用经验公式2d+1
train_num=480#训练数据个数
test_num=240#测试数据个数
eta=0.5#学习率
error=0.0009#精度

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

#输入占位
x = tf.placeholder(tf.float32 shape=(None d))#列数是d,行数不定
y_= tf.placeholder(tf.float32 shape=(None l))

#构建图:前向传播
a=tf.nn.sigmoid(tf.matmul(xw1)+b1)#sigmoid激活函数
y=tf.nn.sigmoid(tf.matmul(aw2)+b2)
mse = tf.reduce_mean(tf.square(y_ -  y))#损失函数采用均方误差
train_step = tf.train.AdamOptimizer(eta).minimize(mse)#Adam算法
#train_step = tf.train.GradientDescentOptimizer(eta).minimize(mse)#梯度下降法

#读取气温数据
dataset = pd.read_csv(‘tem.csv‘ delimiter=““)
dataset=np.array(dataset)
mn=np.shape(dataset)
totalX=np.zeros((m-dd))
totalY=np.zeros((m-dl))
for i in range(m-d):#分组:前三个值输入,第四个值输出
    totalX[i][0]=dataset[i][0]
    totalX[i][1]=dataset[i+1][0]
    totalX[i][2]=dataset[i+2][0]
    totalY[i][0]=dataset[i+3][0]
#归一化数据
Normal_totalX=np.zeros((m-dd))
Normal_totalY=np.zeros((m-dl))
nummin=np.min(dataset)
nummax=np.max(dataset)
dif=nummax-nummin
for i in range(m-d):
    for j in range(d):
        Normal_totalX[i][j]=(totalX[i][j]-nummin)/dif
    Normal_totalY[i][0]=(totalY[i][0]-nummin)/dif

#截取训练数据
X=Normal_totalX[:train_num-d:]
Y=Normal_totalY[:train_num-d:]
testX=Normal_totalX[train_num::]
testY=totalY[train_num::]
start = time.clock()

#创建会话来执行图
with tf.Session() as sess:
    init_op = tf.global_variables_initializer()#初始化节点
    sess.run(init_op)

    STEPS=0
    while True:
        sess.run(train_step feed_dict={x: X y_: Y})
        STEPS+=1
        train_mse= sess.run(mse feed_dict={x: X y_: Y})
        if STEPS % 10000 == 0:#每训练100次,输出损失函数
            print(“第 %d 次训练后训练集损失函数为:%g“ % (STEPS train_mse))
        ##if train_mse        ##  break
        if STEPS>10000000:
          break

    print(“总训练次数:“STEPS)
    end = time.clock()
    print(“运行耗时(s):“end-start)

#测试
    Normal_y= sess.run(y feed_dict={x: testX})#求得测试集下的y计算值
    DeNormal_y=Normal_y*dif+nummin#将y反归一化
    test_mse= sess.run(mse feed_dict={y: DeNormal_y y_: testY})#计算均方误差
    print(“测试集均方误差为:“test_mse)

#预测
    XX=tf.constant([[18.317.416.7]])
    XX=(XX-nummin)/dif#归一化
    a=tf.nn.sigmoid(tf.matmul(XXw1)+b1)
    y=tf.nn.sigmoid(tf.matmul(aw2)+b2)
    y=y*dif+nummin#反归一化
    print(“[18.317.416.7]输入下预测气温为:“sess.run(y))

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-12-09 08:42  BP神经网络实例及代码分析(python+tensorflow)\
     目录           0  2019-12-08 10:10  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\
     目录           0  2019-12-08 13:27  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\
     目录           0  2019-12-09 08:23  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\.idea\
     文件         441  2019-12-08 12:27  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\.idea\BP神经网络实例及代码分析(python+tensorflow).iml
     目录           0  2019-12-08 10:13  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\.idea\inspectionProfiles\
     文件         174  2019-12-08 10:13  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\.idea\inspectionProfiles\profiles_settings.xml
     文件         294  2019-12-08 12:27  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\.idea\misc.xml
     文件         367  2019-12-08 10:13  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\.idea\modules.xml
     文件        3758  2019-12-09 08:23  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\.idea\workspace.xml
     目录           0  2019-12-08 12:26  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\.ipynb_checkpoints\
     文件          72  2019-12-08 12:26  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\.ipynb_checkpoints\Untitled-checkpoint.ipynb
     文件          72  2019-12-08 12:26  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\Untitled.ipynb
     文件        3257  2019-12-08 13:27  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\bpnn_tf.py
     文件        4153  2019-03-09 19:57  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\tem.csv
     文件           0  2019-12-08 10:17  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29\BP神经网络实例及代码分析(python+tensorflow)\untitled
     文件        3015  2019-12-08 10:10  BP神经网络实例及代码分析(python+tensorflow)\BP神经网络实例及代码分析%28python%2Btensorflow%29.rar
     文件       12386  2019-12-09 08:42  BP神经网络实例及代码分析(python+tensorflow)\因版本不同的报错处理方法.docx

评论

共有 条评论