这是一个毕业设计完成时间是2021年四月份,当时我做毕设遇到了很多问题,磕磕绊绊也是做完了。前段时间调剂失败,现在自己也工作了,嵌入式。
五一假期觉得做点别的,把毕设传上来吧! 用的是python tensorflow bp神经网络
数据来源老师提供的
先给大家看看流程图 下图
下图这是真是数据
线性回归部分见下图
神经网络部分见下图
(1)先分析影响因素
参数 | 相关度(series库) |
最高温度 | 0.49 |
最低温度 | 0.47 |
平均温度 | 0.52 |
相对湿度 | 0.15 |
降雨量 | -0.06 |
(2)网络层数 学习率这部分我就省略 直接看效果
参数 | 设置 |
Batch_size | 64 |
Epoch | 200 |
Loss | Mse |
Optimizer | Adam |
Learning_rate | 0.01 |
下面是论文的附录代码,完整代码放在了GitHub
附录一:
线性回归核心部分代码
#设置超参数
lr=0.02
epoch = 40
display_step =1
#设置参数初值
np.random.seed(123)
w=np.random.randn(6,1)
#训练模型
mse_train= [] #保持迭代后的损失
mse_test = []
for i in range(0,epoch+1):
dl_dw = np.matmul(np.transpose(x_train),np.matmul(x_train,w)-y_train)
w= w-lr*dl_dw
pred=(np.matmul(x_train,w))
loss=1000*(np.mean(np.square(y_train-pred))/2)
mse_train.append(loss)
if i % display_step == 0:
# print(mse_train[i])
print("i :%i,loss:%f" %(i,mse_train[i]))
附录二:
神经网络核心部分代码
model= tf.keras.Sequential(
[tf.keras.layers.Dense(64,input_shape=(4,),activation='relu'),
tf.keras.layers.Dense(64,activation='relu'),
tf.keras.layers.Dense(32,activation='relu'),
tf.keras.layers.Dense(1)
]
)
model.summary()
model.compile(
optimizer=tf.optimizers.Adam(lr=0.01),
loss='mse',)
history=model.fit(x_train,y_train,epochs=400)
训练和测试的负荷数据也放GitHub了
https://github.com/waterinput/Graduation-Short-term-forecasting-of-power-load-based-on-neural-network
最后关于我的学习过程我放到b站了,有兴趣可以看,没兴趣跳过