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

html5 手机网站开发百度大数据官网

html5 手机网站开发,百度大数据官网,大连建设网中标公司,网站建设人员叫什么科目任务目标 基于给定数据集#xff0c;进行数据预处理#xff0c;搭建以LSTM为基本单元的模型#xff0c;以Adam优化器对模型进行训练#xff0c;使用训练后的模型进行预测并计算预测分类的准确率。 数据集信息 IMDB数据集是一个对电影评论标注为正向评论与负向评论的数据…任务目标 基于给定数据集进行数据预处理搭建以LSTM为基本单元的模型以Adam优化器对模型进行训练使用训练后的模型进行预测并计算预测分类的准确率。 数据集信息 IMDB数据集是一个对电影评论标注为正向评论与负向评论的数据集共有25000条文本数据作为训练集25000条文本数据作为测试集。 已知数据集中数据格式如下表所示。 1、读取数据内容 2、预处理 首先对于创建词汇表记录每一个单词出现的频率并由此将特征数据集转为特征向量。最后转化为tensor格式 由于数据量庞大这里先用PCA将数据降维这里选择降到20个维度 将特征数据集和标签进行匹配并每两个数据作为一个批次全部数据进行随机的打乱 3、构建模型 这里采用pytorch中的LSTM来得到LSTM层的状态 LSTM层总共设置4层传入初始隐藏状态的细胞内容和输入内容。最后取得最后的时间步的输出 4、模型训练 损失函数选择均方误差函数优化器选择了Adam优化总共训练4代 绘制出损失值的变化图像 5、模型评估 将测试集的内容导入并做和训练集一样的预处理然后将测试集放入模型中将均方误差作为评价标准计算平均误差。 并绘制出误差图像 误差都在0.003到0.005之间说明模型能够正确预测情感。 完整代码 import gzip import pandas as pd from io import StringIO import torch import torch.nn as nn import torch.optim as optimfeat_file_path labeledBow.featwith open(feat_file_path, r) as file:lines file.readlines() # 逐行读取文件内容# 显示部分文件内容可根据需要调整 # for line in lines[990:1000]: # 显示前10行内容 # print(line)# In[2]:labels [] features []for line in lines:parts line.split( )labels.append(int(parts[0]))feats {}for part in parts[1:]:index, value part.split(:)feats[int(index)] float(value)features.append(feats)# In[3]:# 1. 创建词汇表 vocab {} for feat_dict in features:vocab.update(feat_dict)# 创建特征索引到新的连续索引的映射 feature_idx {feat: idx for idx, feat in enumerate(sorted(vocab.keys()))}# 2. 创建特征向量 max_features len(vocab) feature_vectors [] for feat_dict in features:# 初始化特征向量vector [0.0] * max_features# 填充特征向量for feat_idx, feat_value in feat_dict.items():vector[feature_idx[feat_idx]] feat_valuefeature_vectors.append(vector)# 3. 转换为张量 features_tensor torch.tensor(feature_vectors, dtypetorch.float32)# 检查张量形状 print(features_tensor.shape)# In[4]:from sklearn.decomposition import PCA import torch# features_tensor 是特征张量大小为 torch.Size([25000, 89527]) # 这里将其转换为 NumPy 数组 features_np features_tensor.numpy()# 初始化PCA选择需要降维的维度这里假设降到100维 pca PCA(n_components20)# 用PCA拟合数据 features_reduced pca.fit_transform(features_np)# 将降维后的数据转换回张量形式 features_reduced_tensor torch.tensor(features_reduced)# 打印降维后的数据大小 print(features_reduced_tensor.size())# In[5]:import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader, TensorDatasetlabels_tensor torch.tensor(labels, dtypetorch.float32) features_reduced features_reduced_tensor.unsqueeze(1) labels_t labels_tensor.unsqueeze(1) train_data TensorDataset(features_reduced, labels_t) train_loader DataLoader(train_data, batch_size2, shuffleTrue)class LSTMModel(nn.Module):def __init__(self, input_size, hidden_size, output_size, num_layers4):super(LSTMModel, self).__init__()self.hidden_size hidden_sizeself.num_layers num_layersself.lstm nn.LSTM(input_size, hidden_size, num_layers, batch_firstTrue)self.fc nn.Linear(hidden_size, output_size)def forward(self, x):h0 torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(x.device)c0 torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(x.device)out, _ self.lstm(x, (h0, c0))out self.fc(out[:, -1, :]) # 取最后一个时间步的输出return out# 定义模型参数 input_size 20 hidden_size 128 num_layers 4 output_size 1# 初始化模型、损失函数和优化器 model LSTMModel(input_size, hidden_size, output_size, num_layers) criterion nn.MSELoss() optimizer optim.Adam(model.parameters(), lr0.0001) losses [] # 存储损失值 # 训练模型 num_epochs 5 device torch.device(cuda if torch.cuda.is_available() else cpu) model.to(device)for epoch in range(num_epochs):for i, (inputs, targets) in enumerate(train_loader):inputs, targets inputs.to(device), targets.to(device)optimizer.zero_grad()outputs model(inputs)loss criterion(outputs.squeeze(), targets.squeeze())loss.backward()optimizer.step()losses.append(loss.item()) # 记录损失值if (i1) % 2 0:print(fEpoch [{epoch1}/{num_epochs}], Step [{i1}/{len(train_loader)}], Loss: {loss.item()})# In[6]:import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader, TensorDataset import matplotlib.pyplot as plt # 绘制损失值变化图 plt.plot(losses, labelTraining Loss) plt.xlabel(Training Steps) plt.ylabel(Loss) plt.title(Training Loss over Steps) plt.legend() plt.show()# In[7]:feat_file_path labeledBow_test.featwith open(feat_file_path, r) as file:lines file.readlines() # 逐行读取文件内容labels_test [] features_test []for line in lines:parts line.split( )labels_test.append(int(parts[0]))feats {}for part in parts[1:]:index, value part.split(:)feats[int(index)] float(value)features_test.append(feats)# In[8]:# 1. 创建词汇表 vocab {} for feat_dict in features_test:vocab.update(feat_dict)# 创建特征索引到新的连续索引的映射 feature_idx {feat: idx for idx, feat in enumerate(sorted(vocab.keys()))}# 2. 创建特征向量 max_features len(vocab) feature_vectors [] for feat_dict in features_test:# 初始化特征向量vector [0.0] * max_features# 填充特征向量for feat_idx, feat_value in feat_dict.items():vector[feature_idx[feat_idx]] feat_valuefeature_vectors.append(vector)# 3. 转换为张量 features_tensor torch.tensor(feature_vectors, dtypetorch.float32)# 检查张量形状 print(features_tensor.shape)# In[9]:from sklearn.decomposition import PCA import torch# features_tensor 是特征张量大小为 torch.Size([25000, 89527]) # 这里将其转换为 NumPy 数组 features_np features_tensor.numpy()# 初始化PCA选择需要降维的维度这里假设降到100维 pca PCA(n_components20)# 用PCA拟合数据 features_reduced pca.fit_transform(features_np)# 将降维后的数据转换回张量形式 features_reduced_tensor torch.tensor(features_reduced)# 打印降维后的数据大小 print(features_reduced_tensor.size())# In[14]:from torch.utils.data import DataLoader, TensorDatasetlabels_tensor torch.tensor(labels_test, dtypetorch.float32) features_reduced features_reduced_tensor.unsqueeze(1) labels_t labels_tensor.unsqueeze(1) train_data TensorDataset(features_reduced, labels_t) train_loader DataLoader(train_data, batch_size2, shuffleTrue)losses []for epoch in range(num_epochs):for i, (inputs, targets) in enumerate(train_loader):inputs, targets inputs.to(device), targets.to(device)outputs model(inputs)loss criterion(outputs.squeeze(), targets.squeeze())losses.append(loss.item()/len(train_loader))if (i1) % 2 0:print(fEpoch [{epoch1}/{num_epochs}], Step [{i1}/{len(train_loader)}], Loss: {loss.item()/len(train_loader)})# In[15]:plt.plot(losses, labelTraining Loss) plt.xlabel(Training Steps) plt.ylabel(Loss) plt.title(Training Loss over Steps) plt.legend() plt.show()本文由博客一文多发平台 OpenWrite 发布
http://www.huolong8.cn/news/122857/

相关文章:

  • 网站有哪几种电子商务公司名字推荐
  • 优秀网站 要素外贸网站在哪做外链
  • 在上海总部互联网公司排名西安官网优化技术
  • 广州白云手机网站建设移动网站网上营业厅
  • 网站开发目的简介门窗 东莞网站建设
  • 小轲网站建设简述网站建设流程
  • 公益网站建设网站开发软件系统
  • 化妆品网站建设的论文宁波seo网络推广软件系统
  • 毕业设计做系统跟做网站哪个容易营销qq多少钱一个月
  • 国外的自建站平台是什么个人形象设计网站
  • 宏福建设集团有限公司网站高校廉洁文化建设网站
  • 湛江网站制作网站网站空间和数据库空间
  • 雄安建设集团 网站店面设计模板
  • 安陆建设局网站网站制作难度
  • 做语文高考题网站网站关键词密度查询
  • 如何提高 网站的点击量WordPress添加加载用时
  • 网站建设逻辑手机可以做网站
  • 提供网站建设工具淘客怎么用网站做
  • 网站建设项目申请ppt郑州网站建设到诺然
  • 苏州工业园区两学一做教育网站wordpress 图片备份
  • 制作网站在本机运行景观设计公司名字
  • 凡科做的网站推效果创网科技有限公司怎么样
  • 主流网站 技术网站建设所需美工
  • 上海做网站建设公司网络推广方法技巧
  • 电商网站设计风格和内容网络架构模拟设计
  • 南阳做网站价格网站建设 ipv6
  • 网页设计师培训学院seo网站优化方
  • 西直门网站建设网络营销策划书步骤
  • php做学校网站免费网页设计的注意事项
  • 页面做的好看的网站时光轴网站