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

国外专业做集装箱别墅网站成品网站怎么被百度收录

国外专业做集装箱别墅网站,成品网站怎么被百度收录,软件定制为什么不给源码,南宁网站建设公司哪里目录 数据阶段两个问题开始利用我们的代码进行切分 backbone网络训练效果 感觉还行#xff0c;没有调参数。源码比较长#xff0c;如果需要我后续会发#xff08;因为太长了#xff01;#xff01;#xff09; 数据阶段 #xff01;#xff01;#xff01;注意#… 目录 数据阶段两个问题开始利用我们的代码进行切分 backbone网络训练效果 感觉还行没有调参数。源码比较长如果需要我后续会发因为太长了 数据阶段 注意 本文不会讲原理因为之前两篇文章已经讲过了只会解释一些结构性问题和思路问题。 所谓工欲善其事必先利其器做量化分析的股价预测完美必须要先把数据处理好。 那么本人的数据下载是在聚宽平台股票代码为601398的数据2014-3 到 2024-3年的默认数据。如何下载可以按照我的方式 进入研究环境后随便创建一个ipynb文件进行数据下载 运行以下代码就行 # 1.获取数据 data get_price(601398.XSHG, start_date2014-01-01, end_date2024-01-01, frequencydaily, fieldsNone, skip_pausedFalse, fqpre, panelTrue) # 2.保存数据 data.to_csv(data_沪深300/601398.XSHG(工商银行14-24).csv)两个问题 1.为什么我们只需要用encoder部分去预测就行而不需要decoder部分 答 编码器用于将输入序列编码成一个上下文表示contextual representation然后解码器根据该上下文表示生成目标序列在时间序列预测任务中我们不需要生成一个序列而是预测单个或少量几个未来数据点。因此编码器的上下文表示已经包含了足够的信息来进行预测无需使用解码器。还有我觉得使用解码器的意思是你用上一天的数据去预测下一天的数据我感觉这样就没意思了这和我们个人看有什么区别。而且对最后的结果也会造成不精准的效果。为什么这么说呢你看解码器的mask编码部分应该可以理解了。 2.我们的维度为什么不是[batch, len, feature]? 因为这是pytorch要求自己能实现的话自己改吧。 开始利用我们的代码进行切分 我的思路用的是用五天的数据去预测下一天数据集和测试及8/2分 但是我们要记住一点就是我们必须要理解我们这么做的思路就比如我们的特征有6列分别是,open,close,high,low,volume,money,我们可以通过训练得到我们想预测的某一特征。OK我们这就开始。 说起数据分割里面的代码不难最难的是 for i in range(len(X_CONVERT) - seq_length): X_data.append(X_CONVERT[i:iseq_length, :]) y_data.append(X_CONVERT[iseq_length, 1]) 你要知道我在干什么就是用8成的数据集去预测得到我们所需要的train数据集和我们对应train数据集的label举个例子就是我们要炒菜我们拿上原料后我们要知道炒的什么菜那么菜单必须要知道。是吧不然你炒完菜后说是红烧肉但是没有菜单图片对比你怎么知道这是红烧肉这也就是这一步的意义。 def split_data(batch_size,seq_length, pred_length, train_ratio):data_all pd.read_csv(data_path)data_ha []length len(data_all)# 将数据转换为numpy数组并添加到列表中for element in elements:data_element data_all[element].values.astype(np.float32)data_element data_element.reshape(length, 1)data_ha.append(data_element)X_hat np.concatenate(data_ha, axis1)X_CONVERT torch.from_numpy(X_hat).float()X_CONVERT X_CONVERT.flip(dims[0])# 进行归一化min_val np.min(X_hat, axis0)max_val np.max(X_hat, axis0)X_normalized (X_hat - min_val) / (max_val - min_val)X_CONVERT torch.from_numpy(X_normalized).float()X_CONVERT X_CONVERT.flip(dims[0])#数据翻转# 划分训练集和验证集X_data []y_data []for i in range(len(X_CONVERT) - seq_length):#划分的时候是用8成的训练集去训练然后label是某##一列X_data.append(X_CONVERT[i:iseq_length, :])y_data.append(X_CONVERT[iseq_length, 1])X_data torch.stack(X_data)y_data torch.stack(y_data).squeeze(-1)print(X_data.shape, y_data.shape)dataset TensorDataset(X_data, y_data)train_size int(len(dataset) * train_ratio)val_size len(dataset) - train_sizetrain_dataset, val_dataset random_split(dataset, [train_size, val_size])train_loader DataLoader(train_dataset, batch_size, shuffleFalse)val_loader DataLoader(val_dataset, batch_size, shuffleFalse)return train_loader, val_loader,min_val, max_val backbone网络 如其名我们都知道这是这是transformer当然是用的transformer的结构。但是我们用但是只用一部分具体用什么部分开头说了只用encoder **但是具体操作起来的时候encoder里面的embadding部分我们需要修改因为我们不是机器翻译所以我们不需要把他变成词向量我们时间序列数据输入通常是连续的数值特征使用线性层更直接地将这些数值特征映射到高维空间。并且我们的embadding嵌入层适用于离散的输入输出是固定维度的嵌入向量。而线性层适用于连续的输入可以灵活处理不同维度的输入特征将其映射到高维表示。**具体看下面代码 class Encoder(nn.Module):def __init__(self):super(Encoder, self).__init__()self.src_emb nn.Linear(feature, d_model)#这里替换了self.pos_emb PositionalEncoding(d_model)self.layers nn.ModuleList([EncoderLayer() for _ in range(n_layers)])def forward(self, enc_inputs):enc_outputs self.src_emb(enc_inputs) # [batch_size, src_len, d_model]enc_outputs self.pos_emb(enc_outputs) # [batch_size, src_len, d_model]enc_self_attn_mask get_attn_pad_mask(enc_inputs, enc_inputs) # [batch_size, src_len, src_len]enc_self_attns []for layer in self.layers:enc_outputs, enc_self_attn layer(enc_outputs, enc_self_attn_mask)enc_self_attns.append(enc_self_attn)return enc_outputs, enc_self_attns 当然其他的部分和我上一篇的一样但是就是decode不要了当然也可以换成其他结果或者加个注意力机制 讲下各个参数 d_model 512 # linnerer的输入维度 也就是字embedding的维度 d_ff 2048 # 前向传播隐藏层维度 d_k d_v 64 # K(Q), V的维度 n_layers 6 # 有多少个encoder和decoder n_heads 8 # Multi-Head Attention设置为8 feature6 # 输入特征维度当然主体还是要看一下的最重要的是通过encoder后的维度转换比较繁琐要和我们之前split的数据集得到的y_train一致这样才能计算损失 class Transformer(nn.Module):def __init__(self):super(Transformer, self).__init__()self.Encoder Encoder()self.projection nn.Linear(d_model, 1, biasFalse)def forward(self, enc_inputs): # enc_inputs: [batch_size, src_len, feature]enc_outputs, enc_self_attns self.Encoder(enc_inputs) # enc_outputs: [batch_size, src_len, d_model]dec_logits self.projection(enc_outputs) # dec_logits: [batch_size, src_len, 1]dec_logits dec_logits.mean(dim1) # 将每个时间步的预测结果取平均得到 [batch_size, 1]return dec_logits.squeeze(-1), enc_self_attns # 输出 [batch_size] 训练 先解释参数 batch_size64#批处理大小 seq_length7#时间序列长度 也就是通过seq_length天预测后面pred_length天 pred_length1#预测长度 train_ratio0.8#训练集比例 epochs 50 # 训练轮数 lr 0.001 # 学习率 png_save_pathdiytransformers/12.24transformer/picture#所有的图片保存的地方 loss_history []# 存储每个 epoch 的损失训练代码很长挺简单的 # 训练模型 for epoch in range(epochs):epoch_loss 0y_pre []y_true []# 训练阶段for X, y in train_loader:X X.float() # 确保输入数据类型为float32y y.float() # 确保目标数据类型为float32outputs, enc_self_attns model(X)# 计算损失确保形状一致loss criterion(outputs, y)epoch_loss loss.item()optimizer.zero_grad()loss.backward()torch.nn.utils.clip_grad_norm_(model.parameters(), 0.5)optimizer.step()#转换我们的label和训练后得到的训练集的预测值 y_pre.append(outputs.detach())y_true.append(y.detach())avg_loss epoch_loss / len(train_loader)loss_history.append(avg_loss)#获得最好的lossif avg_loss best_loss:best_loss avg_lossbest_epoch epochbest_model_wts copy.deepcopy(model.state_dict())torch.save(best_model_wts, path_train)y_pre_concat torch.cat(y_pre, dim0)y_true_concat torch.cat(y_true, dim0)# 计算并打印评估指标metrics evaluate(y_pre_concat, y_true_concat, min_val, max_val)print(fEpoch {epoch 1}, Loss: {avg_loss:.6f})# 可视化结果ht(y_true_concat.detach().cpu().numpy(), y_pre_concat.detach().cpu().numpy(), min_val, max_val,png_save_path)最后是看我们的一些指标效果如何 比如这里我计算的maermsepcc等 # 加载最佳模型权重 model.load_state_dict(torch.load(train_over_path))# 测试模型并计算评估指标 test_metrics test_model(model, val_loader, min_val, max_val)print(fTest Metrics: {test_metrics})效果 感觉还行没有调参数。 源码比较长如果需要我后续会发因为太长了
http://www.hkea.cn/news/14369548/

相关文章:

  • 网站404报错微信公众号上怎么上传wordpress
  • 企业网站可以做淘宝客吗淮安建筑信息平台
  • 广州网站建设易企网站开发一般流程图
  • 网站页面架构图wordpress访客发布审核
  • 梧州网站seo网易企业邮箱怎么设置自动回复
  • 简洁大气网站源码品牌网站首页设计
  • 深圳网站建设案有哪些学做衣服的网站
  • 南京行业门户网站wordpress承载压力
  • 企业网站建设招标书帮人做兼职的网站
  • 企业注册信息查询网站美团网网站建设 费用
  • 邢台手机网站建设公司施工企业在施工过程中发现工程设计图纸存在差错的
  • 微网站建设价格对比高端网站建设 磐石网络专注
  • 中国对外贸易网站有赞微商城登录入口
  • 做网站的时候宽度都怎么弄wordpress 虎嗅 2017
  • 广东省住房和城乡建设厅网站 粤建网足球网站模板
  • 上市公司中 哪家网站做的好建网站方案
  • 天津网站开发ruhe用dw做网站
  • 网站关键词优化排名软件网站导航栏目设计内容依据
  • 广州建网站哪儿济南兴田德润简介网站空间如何升级
  • 长春做网站哪个公司好大连做网站价格
  • 怎样建设网赌网站南京宜电的网站谁做的
  • 网站开发能用udp协议吗wordpress动态菜单
  • 无锡市做网站豫建设标去哪个网站
  • 西宁网站设计制作平面设计师灵感网站
  • 网站开发信息平台项目总结达州seo
  • 自己公司网站维护wordpress底部怎么改
  • 商务网站建设怎样收费广告设计与制作需要学什么软件
  • 中山建网站价格网站建设实验报告总结
  • 谷歌网站推广软件网站漏洞扫描工具
  • 甘肃住房和城乡建设厅网站xss wordpress script