当前位置: 首页 > news >正文

涟水县建设局网站门户网站建设目的

涟水县建设局网站,门户网站建设目的,如何用电子邮箱做网站,wordpress禁止百度抓取1.任务场景 以家庭为例#xff0c;假设该家庭有m种电器和总负荷的曲线#xff0c;其中#xff0c;总负荷为,各个电器的负荷有#xff08;m是电器个数#xff0c;n是n个时刻#xff09;。我们需要通过对总负荷曲线进行分解#xff0c;识别出该负荷有几种电器同时运行实现…1.任务场景 以家庭为例假设该家庭有m种电器和总负荷的曲线其中总负荷为,各个电器的负荷有m是电器个数n是n个时刻。我们需要通过对总负荷曲线进行分解识别出该负荷有几种电器同时运行实现。 之前的博客已经用NILMTK的组合优化和因子隐马尔可夫实现过了因为效果不是很好考虑用LSTM实现。 2.算法原理 RNN是循环神经网络与CNN不同循环神经网络可以很好地处理文本数据变长且有序的输入序列。RNN设计的初衷是解决长距离输入之间的依赖但是在用基于时间距离的反向传播算法BPTT时会出现神经网络中的梯度消失问题。LSTM长短时记忆网络和GRU通过加入门控机制来弥补梯度消失问题。 遗忘门损失函数是sigmoid。 记忆门损失函数是tanh函数生成候选记忆。 输出门损失函数是sigmoid。 当输入的序列中没有重要信息时LSTM的遗忘门的值接近于1输入门的值接近于0此时过去的记忆将会被保存从而实现长期记忆的功能。当输出的序列中有重要信息时输入门为1遗忘门接近于0这样旧的记忆就会被遗忘新的重要记忆被重新记忆。 3.理论实现 1基于Tensorflow的Keras 首先建立一个LSTM模型输入维度是批次大小batch_size特征向量值n_invector因为这里是1对多因此n_in应为1。 RepeatVector是如果输入的形状为None,32经过添加RepeatVector(3)层之后输出变为None,3,32,RepeatVector不改变我们的步长改变我们的每一步的维数即属性长度 TimeDistributed和Dense一起配合使用主要应用于一对多多对多的情况。首先使用TimeDistributedDense8input_shape (1,16)把每一步的维度为16变成8不改变步长的大小若该层的批输入形状然后(50, 10, 16)则这一层之后的输出为(50, 10, 8) 这里vetor120经数据处理之后时间并非是一秒一个负荷数据。代表每120个时刻的负荷数据构成一组输入变量。 model Sequential() model.add(LSTM(150, batch_input_shape(batch_size, n_in, vector), statefulTrue)) model.add(RepeatVector(n_out)) model.add(LSTM(150, return_sequencesTrue, statefulTrue)) model.add(TimeDistributed(Dense(vector, activationsoftmax))) print(model.summary()) 2基于pytorch 暂时不会后期更新 4.实战 1基于Tensorflow的Keras 读取数据redd的功率数据集 import pandas as pd import numpy as np import os from keras.models import Sequential from keras.layers import LSTM,Dense,TimeDistributed,RepeatVector import tensorflow as tffrom sklearn.model_selection import train_test_splitdef read_data_all(file_dir): data []for parent, dirnames, filenames in os.walk(file_dir):if parentfile_dir:print(父目录)else:for curDir, dirs, files in os.walk(parent):print(当前文件夹,curDir) # fl open(parent/labels.dat,r,encodingutf-8) # for f in fl.readlines(): # f f.split( )[1].strip() # labels.append(f)for i in range(len(files)-1):fo open(parent/files[i],r,encodingutf-8) # fo pd.DataFrame(fo.readlines(),columns[1])# channel_1 fo[1].str.strip().str.split( ,expandTrue) # channel_1 channel_1.rename(columns{0:date,1:power}) # channel_1[date]channel_1[date].astype(int) # channel_1[label]labels[i] # data pd.concat([data,channel_1],axis0)for file in fo.readlines():file file.strip()file [float(i) for i in file.split( )]data.append((int(file[0]),file[1],str(i1),curDir.split(/)[-1]))return data#获取数据 file_dir F:/aayu/负荷分解/low_freq/ data read_data_all(file_dir) 选择house_1为训练数据并进行数据预处理 #选择第一个家庭进行训练 data pd.DataFrame(data,columns[date,power,type,house]) house_1 data[data[house]house_1] #house_1 house_1.set_index([date])#各个电器时间点拼接 elec_type list(set(house_1[type].tolist())) house pd.DataFrame() for i in elec_type:print(i)e house_1[house_1[type]i][[date,power]]e e.rename(columns{power:i})e e.set_index([date])print(e.shape)house pd.concat([house,e],axis1)print(house.shape)#处理缺失 rows [] for row in house.index[house.isnull().sum(axis1)0]:rows.append(row) house house.drop(rows,axis0) # for i in list(Udata.columns[Udata.isnull().sum(axis0)0]): # columnsU.append(i) house house.drop([12],axis1)填充1mains #house[1] house[1].fillna(house[1].mean())#将用电量小的电器也做剔除 #columns house[[3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20]].sum().sort_values(ascendingFalse)[:5].index #columns np.append(columns,[1]) #columns np.append(columns,[2]) #househouse[columns]elec_y [] elec_X_1 [] elec_X_2 [] for j in range(0,house.shape[0],120): # print(j)if j120house.shape[0]: #print(data limits)else: # print(j) # print(len(elec[j:j3600]))elec_X_1.append((np.array(house[j:j120][[1]]).T))elec_X_2.append((np.array(house[j:j120][[2]]).T))elec_y.append((np.array(house[j:j120][[3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19]]).T))X np.array(elec_X_1) y np.array(elec_y)通过sklearn进行数据集划分 X_train, X_test, y_train, y_test train_test_split(X, y, random_state42, test_size0.1) 使用Keras进行模型训练 batch_size 2 n_in 1 vector 120 n_out 20model Sequential() model.add(LSTM(150, batch_input_shape(batch_size, n_in, vector), statefulTrue)) model.add(RepeatVector(n_out)) model.add(LSTM(150, return_sequencesTrue, statefulTrue)) model.add(TimeDistributed(Dense(vector, activationsoftmax))) print(model.summary())model.compile(optimizeradam, lossbinary_crossentropy, metrics[accuracy]) model.fit(X_train, y_train, epochs20, validation_data(X_test, y_test), batch_sizebatch_size) 5.模型优化 在进行模型训练时表现性并不好忽略数据质量的问题可以考虑进行模型调参。模型调参一般从以下方面进行考虑 神经网络的层数 每层神经元的个数 如何初始化Weights和biases loss函数选择哪一个 选择何种RegularizationL1,L2 Regularization parameter lambda 选择多大合适 激励函数如何选择 是否使用dropout 训练集多大比较合适 mini-batch选择多大 学习率多少合适 选择何种梯度下降算法 何时停止Epoch训练 自己模型的超参数 参考资料 keras中TimeDistributed和RepeatVector的解释 Pytorch TimeDistributed 层封装器 keras中使用LSTM实现一对多和多对多
http://www.zqtcl.cn/news/329896/

相关文章:

  • 下载了wordpress然后怎么用怎样健建设一个有利于优化的网站
  • 网站开发心得500字做代售机票网站程序
  • php电影网站开发凡诺网站建设
  • 兰州道路建设情况网站南宁网站开发
  • 网站开发服务费投资者网站建设
  • 网站开发 如何备案新站点seo联系方式
  • 自动全屏网站模板贵州网站制作公司电话
  • 南昌购物网站制作国外免费网站空间
  • 网站地图模版企业做网站etp和源程序
  • 电子商务企业网站的推广方式外贸长尾关键词挖掘网站
  • 靓号网建站网站商城html模板
  • 广东顺德网站建设wordpress 我爱搜罗网
  • 基金网站建设需求书昆明网站制作工具
  • 京东网上购物商城官方网站国外网站页头设计图片
  • 芯片设计公司排名安卓优化大师app
  • 如何进行网站域名解析网站开发的工作方法
  • 专门做衣服的网站有哪些南宁企业官网seo
  • 网站 建设 内容中铁建设集团有限公司招聘官网
  • 个人电脑做服务器网站cn域名注册流程
  • 网站开发的思维导图哪些网站是react做的
  • 住房和城乡建设部网站注册进度常德建设局网站
  • 网站导购话术怎么做免费的产品图片网站
  • 网站设计外文文献建建设网站公司
  • 打开网站说建设中是什么问题网站开发收税
  • 海口建设厅网站grimhelm wordpress
  • 如何快速提升网站pr淮北房产网
  • 微网站和微信广州营销型网站建设团队
  • 企业网站制作托管微信建站网站
  • h5网站如何做排名济南网站建设选聚搜网络
  • 网站建设 手机wordpress 仿煎蛋主题