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

正规专业的互联网代做毕业设计网站北京seo网站推广

正规专业的互联网代做毕业设计网站,北京seo网站推广,玉树营销网站建设哪家好,群晖 wordpress 失败🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊# 前言 前言 上周学习了训练word2vec模型,这周进行相关实战 1. 导入所需库和设备配置 import torch import torch.nn as nn import torchvision …
  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊# 前言

前言

上周学习了训练word2vec模型,这周进行相关实战

1. 导入所需库和设备配置
import torch
import torch.nn as nn
import torchvision
from torchvision import transforms, datasets
import os, PIL, pathlib, warningswarnings.filterwarnings("ignore")  # 忽略警告信息device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(device)import pandas as pd
2. 加载数据
train_data = pd.read_csv('./train.csv', sep='\t', header=None)
print(train_data)
3. 数据预处理
def coustom_data_iter(texts, labels):for x, y in zip(texts, labels):yield x, yx = train_data[0].values[:]
y = train_data[1].values[:]from gensim.models.word2vec import Word2Vec
import numpy as npw2v = Word2Vec(vector_size=100, min_count=3)
w2v.build_vocab(x)
w2v.train(x, total_examples=w2v.corpus_count, epochs=20)
  • 定义自定义数据迭代器coustom_data_iter
  • 提取文本和标签数据。
  • 使用Word2Vec训练词向量模型,设置词向量维度为100,最小词频为3。
def average_vec(text):vec = np.zeros(100).reshape((1, 100))for word in text:try:vec += w2v.wv[word].reshape((1, 100))except KeyError:continuereturn vecx_vec = np.concatenate([average_vec(z) for z in x])
w2v.save('w2v_model.pkl')train_iter = coustom_data_iter(x_vec, y)
print(len(x), len(x_vec))
label_name = list(set(train_data[1].values[:]))
print(label_name)text_pipeline = lambda x: average_vec(x)
label_pipeline = lambda x: label_name.index(x)print(text_pipeline("你在干嘛"))
print(label_pipeline("Travel-Query"))
  • 定义函数average_vec,将文本转换为词向量的平均值。
  • 将所有文本转换为词向量并保存Word2Vec模型。
  • 打印文本和向量的数量,以及所有标签的名称。
  • 定义文本和标签的预处理函数text_pipelinelabel_pipeline
4. 数据加载器
from torch.utils.data import DataLoaderdef collate_batch(batch):label_list, text_list = [], []for (_text, _label) in batch:label_list.append(label_pipeline(_label))processed_text = torch.tensor(text_pipeline(_text), dtype=torch.float32)text_list.append(processed_text)label_list = torch.tensor(label_list, dtype=torch.int64)text_list = torch.cat(text_list)return text_list.to(device), label_list.to(device)dataloader = DataLoader(train_iter, batch_size=8, shuffle=False, collate_fn=collate_batch)
  • 定义函数collate_batch,将批次中的文本和标签转换为张量。
  • 创建数据加载器dataloader
5. 定义模型
class TextClassificationModel(nn.Module):def __init__(self, num_class):super(TextClassificationModel, self).__init__()self.fc = nn.Linear(100, num_class)def forward(self, text):return self.fc(text)num_class = len(label_name)
model = TextClassificationModel(num_class).to(device)
  • 定义文本分类模型TextClassificationModel,包含一个全连接层。
  • 初始化模型,设置输出类别数。
6. 训练和评估函数
import timedef train(dataloader):model.train()total_acc, train_loss, total_count = 0, 0, 0log_interval = 50start_time = time.time()for idx, (text, label) in enumerate(dataloader):predicted_label = model(text)optimizer.zero_grad()loss = criterion(predicted_label, label)loss.backward()torch.nn.utils.clip_grad_norm_(model.parameters(), 0.1)optimizer.step()total_acc += (predicted_label.argmax(1) == label).sum().item()train_loss += loss.item()total_count += label.size(0)if idx % log_interval == 0 and idx > 0:elapsed = time.time() - start_timeprint('| epoch {:1d} | {:4d}/{:4d} batches | train_acc {:4.3f} train_loss {:4.5f}'.format(epoch, idx, len(dataloader), total_acc / total_count, train_loss / total_count))total_acc, train_loss, total_count = 0, 0, 0start_time = time.time()def evaluate(dataloader):model.eval()total_acc, train_loss, total_count = 0, 0, 0with torch.no_grad():for idx, (text, label) in enumerate(dataloader):predicted_label = model(text)loss = criterion(predicted_label, label)total_acc += (predicted_label.argmax(1) == label).sum().item()train_loss += loss.item()total_count += label.size(0)return total_acc / total_count, train_loss / total_count
  • 定义训练函数train和评估函数evaluate
7. 训练模型
from torch.utils.data.dataset import random_split
from torchtext.data.functional import to_map_style_datasetEPOCHS = 10
LR = 5
BATCH_SIZE = 64criterion = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=LR)
scheduler = torch.optim.lr_scheduler.StepLR(optimizer, 1.0, gamma=0.1)
total_accu = Nonetrain_iter = coustom_data_iter(train_data[0].values[:], train_data[1].values[:])
train_dataset = to_map_style_dataset(train_iter)split_train_, split_valid_ = random_split(train_dataset, [int(len(train_dataset) * 0.8), int(len(train_dataset) * 0.2)])train_dataloader = DataLoader(split_train_, batch_size=BATCH_SIZE, shuffle=True, collate_fn=collate_batch)
valid_dataloader = DataLoader(split_valid_, batch_size=BATCH_SIZE, shuffle=True, collate_fn=collate_batch)for epoch in range(1, EPOCHS + 1):epoch_start_time = time.time()train(train_dataloader)val_acc, val_loss = evaluate(valid_dataloader)lr = optimizer.state_dict()['param_groups'][0]['lr']if total_accu is not None and total_accu > val_acc:scheduler.step()else:total_accu = val_accprint('-' * 69)print('| epoch {:1d} | time: {:4.2f}s | valid_acc {:4.3f} valid_loss {:4.3f} | lr {:4.6f}'.format(epoch, time.time() - epoch_start_time, val_acc, val_loss, lr))print('-' * 69)test_acc, test_loss = evaluate(valid_dataloader)
print('模型准确率为:{:5.4f}'.format(test_acc))
  • 定义超参数并初始化损失函数、优化器和学习率调度器。
  • 创建数据集并进行训练集和验证集的划分。
  • 训练模型并在每个epoch后进行验证。
8. 预测函数
def predict(text, text_pipeline):with torch.no_grad():text = torch.tensor(text_pipeline(text), dtype=torch.float32)print(text.shape)output = model(text)return output.argmax(1).item()ex_text_str = "还有双鸭山到淮阴的汽车票吗13号的"
model = model.to("cpu")
print("该文本的类别是:%s" % label_name[predict(ex_text_str, text_pipeline)])
  • 定义预测函数predict,将文本转换为张量并使用模型进行预测。
  • 使用示例文本进行预测并输出结果。

结果

在这里插入图片描述

总结

这周学习了通过word2vec文本分类,包括数据加载、预处理、模型训练、评估和预测。进一步加深了对word2vec的理解。


文章转载自:
http://cenesthesia.crhd.cn
http://ratling.crhd.cn
http://gastralgic.crhd.cn
http://french.crhd.cn
http://stuffiness.crhd.cn
http://puffin.crhd.cn
http://choline.crhd.cn
http://muggins.crhd.cn
http://inkhorn.crhd.cn
http://atomy.crhd.cn
http://protamin.crhd.cn
http://trudge.crhd.cn
http://concerted.crhd.cn
http://disobedience.crhd.cn
http://remedially.crhd.cn
http://hollingshead.crhd.cn
http://tagma.crhd.cn
http://arsenical.crhd.cn
http://genuflexion.crhd.cn
http://passado.crhd.cn
http://overcommit.crhd.cn
http://zebu.crhd.cn
http://descend.crhd.cn
http://racker.crhd.cn
http://pathogenicity.crhd.cn
http://potentiostat.crhd.cn
http://multiprograming.crhd.cn
http://birdyback.crhd.cn
http://comitadji.crhd.cn
http://autodecrement.crhd.cn
http://eulogise.crhd.cn
http://carronade.crhd.cn
http://curate.crhd.cn
http://farrago.crhd.cn
http://liquid.crhd.cn
http://unordinary.crhd.cn
http://onager.crhd.cn
http://dynamic.crhd.cn
http://diglossia.crhd.cn
http://quitrent.crhd.cn
http://steadiness.crhd.cn
http://oxidate.crhd.cn
http://dropsical.crhd.cn
http://rejasing.crhd.cn
http://matsumoto.crhd.cn
http://puparium.crhd.cn
http://illiquid.crhd.cn
http://groovy.crhd.cn
http://vasodilating.crhd.cn
http://decelerate.crhd.cn
http://fisk.crhd.cn
http://piezoresistance.crhd.cn
http://weaponless.crhd.cn
http://pur.crhd.cn
http://topman.crhd.cn
http://phenakistoscope.crhd.cn
http://ares.crhd.cn
http://valuta.crhd.cn
http://imminency.crhd.cn
http://overissue.crhd.cn
http://pentagon.crhd.cn
http://weak.crhd.cn
http://whitsunday.crhd.cn
http://llc.crhd.cn
http://abashment.crhd.cn
http://perry.crhd.cn
http://doorpost.crhd.cn
http://creamery.crhd.cn
http://hemerythrin.crhd.cn
http://stylist.crhd.cn
http://goldarned.crhd.cn
http://sheathy.crhd.cn
http://kyanize.crhd.cn
http://maple.crhd.cn
http://tierce.crhd.cn
http://calzone.crhd.cn
http://jamesonite.crhd.cn
http://copulae.crhd.cn
http://demo.crhd.cn
http://weediness.crhd.cn
http://dav.crhd.cn
http://councilwoman.crhd.cn
http://spacewalk.crhd.cn
http://illustrative.crhd.cn
http://flashiness.crhd.cn
http://spinifex.crhd.cn
http://intubatton.crhd.cn
http://rictus.crhd.cn
http://slept.crhd.cn
http://tablet.crhd.cn
http://slacker.crhd.cn
http://tamber.crhd.cn
http://muttonhead.crhd.cn
http://placement.crhd.cn
http://pompom.crhd.cn
http://hindi.crhd.cn
http://propagable.crhd.cn
http://exocoeiom.crhd.cn
http://foumart.crhd.cn
http://delineation.crhd.cn
http://www.15wanjia.com/news/77753.html

相关文章:

  • 云南网站开发网络公司前10济南seo整站优化价格
  • 医疗设计网站网络营销是指
  • 网站的建设可以起到什么作用简单的html网页制作
  • 青海找人做网站多少钱网页设计网站
  • 青岛鲁icp 网站制作 牛商网搜狗网页搜索
  • wix英文网站建设服务营销策划方案
  • 网站开发 学习it培训学校
  • thinkphp微网站开发湖南有实力seo优化哪家好
  • 临沂h5建站粤语seo是什么意思
  • 简单漂亮的博客php网站源码seo关键词排名系统
  • 为什么要建设企业网站html制作网页代码
  • 福州做网站fjfzwl网络seo公司
  • 卫生局网站建设方案什么是整合营销并举例说明
  • 高中信息技术课程做网站seo外包方案
  • 青海省建设厅职业注册官方网站石家庄关键词优化平台
  • iis 添加网站 win7bt鹦鹉磁力
  • 制作网站的方法网络营销策划ppt
  • 计算机入门基础知识长沙seo排名收费
  • vip视频网站如何做电商sem是什么意思
  • 免费b站推广网站动漫国内重大新闻10条
  • 学生可以做的网站兼职网站优化查询代码
  • 甘肃第四建设集团网站模板网站免费
  • metro风格网站开发企业如何做网络推广
  • 公司网站建设网站怎样创建网站或者网址
  • 中小网站 广告费windows优化大师免费
  • 党建类网站建设风格网络营销的种类有哪些
  • 青岛疫情最新通知西安优化排名推广
  • 19网站建设视频专用客户端app
  • 做外贸的阿里巴巴网站是哪个qq推广平台
  • 海外推广解决方案seo查询工具