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

哪些网站可以做翻译兼职seo营销外包公司

哪些网站可以做翻译兼职,seo营销外包公司,学习网站建设论文,2014网站设计风格RNN,即循环神经网络(Recurrent Neural Network),是一种深度学习模型,特别适用于处理序列数据。以下是对RNN的简要介绍: RNN的特点: 记忆性:与传统的前馈神经网络不同,R…

RNN,即循环神经网络(Recurrent Neural Network),是一种深度学习模型,特别适用于处理序列数据。以下是对RNN的简要介绍:

RNN的特点:

  1. 记忆性:与传统的前馈神经网络不同,RNN具有内部状态(记忆),可以捕获到目前为止观察到的序列信息。
  2. 参数共享:在处理序列的不同时间步时,RNN使用相同的权重,这意味着模型的参数数量不会随着输入序列长度的增加而增加。
  3. 灵活性:RNN能够处理任意长度的输入序列。

RNN的结构:

  • 输入层:接收序列中的单个元素。
  • 隐藏层:包含循环单元,这些单元具有记忆功能,能够存储之前的信息。
  • 输出层:根据当前输入和隐藏层的状态输出结果。

RNN的类型:

  1. 简单RNN:基础模型,但容易受到梯度消失和梯度爆炸问题的影响。
  2. LSTM(长短期记忆网络):通过引入门控机制,解决了简单RNN的长期依赖问题。
  3. GRU(门控循环单元):LSTM的变体,结构更简单,但性能相似。

应用场景:

  • 自然语言处理:如语言模型、机器翻译、文本生成等。
  • 语音识别:将语音信号转换为文本。
  • 时间序列预测:如股票价格预测、天气预报等。

数据下载模块

import os
import shutil
import requests
import tempfile
from tqdm import tqdm
from typing import IO
from pathlib import Path# 指定保存路径为 `home_path/.mindspore_examples`
cache_dir = Path.home() / '.mindspore_examples'def http_get(url: str, temp_file: IO):"""使用requests库下载数据,并使用tqdm库进行流程可视化"""req = requests.get(url, stream=True)content_length = req.headers.get('Content-Length')total = int(content_length) if content_length is not None else Noneprogress = tqdm(unit='B', total=total)for chunk in req.iter_content(chunk_size=1024):if chunk:progress.update(len(chunk))temp_file.write(chunk)progress.close()def download(file_name: str, url: str):"""下载数据并存为指定名称"""if not os.path.exists(cache_dir):os.makedirs(cache_dir)cache_path = os.path.join(cache_dir, file_name)cache_exist = os.path.exists(cache_path)if not cache_exist:with tempfile.NamedTemporaryFile() as temp_file:http_get(url, temp_file)temp_file.flush()temp_file.seek(0)with open(cache_path, 'wb') as cache_file:shutil.copyfileobj(temp_file, cache_file)return cache_pathimdb_path = download('aclImdb_v1.tar.gz', 'https://mindspore-website.obs.myhuaweicloud.com/notebook/datasets/aclImdb_v1.tar.gz')
imdb_path

加载IMDB数据集

import re
import six
import string
import tarfileclass IMDBData():"""IMDB数据集加载器加载IMDB数据集并处理为一个Python迭代对象。"""label_map = {"pos": 1,"neg": 0}def __init__(self, path, mode="train"):self.mode = modeself.path = pathself.docs, self.labels = [], []self._load("pos")self._load("neg")def _load(self, label):pattern = re.compile(r"aclImdb/{}/{}/.*\.txt$".format(self.mode, label))# 将数据加载至内存with tarfile.open(self.path) as tarf:tf = tarf.next()while tf is not None:if bool(pattern.match(tf.name)):# 对文本进行分词、去除标点和特殊字符、小写处理self.docs.append(str(tarf.extractfile(tf).read().rstrip(six.b("\n\r")).translate(None, six.b(string.punctuation)).lower()).split())self.labels.append([self.label_map[label]])tf = tarf.next()def __getitem__(self, idx):return self.docs[idx], self.labels[idx]def __len__(self):return len(self.docs)
imdb_train = IMDBData(imdb_path, 'train')
len(imdb_train)
import mindspore.dataset as dsdef load_imdb(imdb_path):imdb_train = ds.GeneratorDataset(IMDBData(imdb_path, "train"), column_names=["text", "label"], shuffle=True, num_samples=10000)imdb_test = ds.GeneratorDataset(IMDBData(imdb_path, "test"), column_names=["text", "label"], shuffle=False)return imdb_train, imdb_test
imdb_train, imdb_test = load_imdb(imdb_path)
imdb_train

加载预训练词向量

预训练词向量是对输入单词的数值化表示,通过nn.Embedding层,采用查表的方式,输入单词对应词表中的index,获得对应的表达向量。 因此进行模型构造前,需要将Embedding层所需的词向量和词表进行构造。

import zipfile
import numpy as npdef load_glove(glove_path):glove_100d_path = os.path.join(cache_dir, 'glove.6B.100d.txt')if not os.path.exists(glove_100d_path):glove_zip = zipfile.ZipFile(glove_path)glove_zip.extractall(cache_dir)embeddings = []tokens = []with open(glove_100d_path, encoding='utf-8') as gf:for glove in gf:word, embedding = glove.split(maxsplit=1)tokens.append(word)embeddings.append(np.fromstring(embedding, dtype=np.float32, sep=' '))# 添加 <unk>, <pad> 两个特殊占位符对应的embeddingembeddings.append(np.random.rand(100))embeddings.append(np.zeros((100,), np.float32))vocab = ds.text.Vocab.from_list(tokens, special_tokens=["<unk>", "<pad>"], special_first=False)embeddings = np.array(embeddings).astype(np.float32)return vocab, embeddings
glove_path = download('glove.6B.zip', 'https://mindspore-website.obs.myhuaweicloud.com/notebook/datasets/glove.6B.zip')
vocab, embeddings = load_glove(glove_path)
len(vocab.vocab())
idx = vocab.tokens_to_ids('the')
embedding = embeddings[idx]
idx, embedding

数据集预处理

通过加载器加载的IMDB数据集进行了分词处理,但不满足构造训练数据的需要,因此要对其进行额外的预处理。其中包含的预处理如下:

  • 通过Vocab将所有的Token处理为index id。
  • 将文本序列统一长度,不足的使用<pad>补齐,超出的进行截断。
  • import mindspore as mslookup_op = ds.text.Lookup(vocab, unknown_token='<unk>')
    pad_op = ds.transforms.PadEnd([500], pad_value=vocab.tokens_to_ids('<pad>'))
    type_cast_op = ds.transforms.TypeCast(ms.float32)
    imdb_train = imdb_train.map(operations=[lookup_op, pad_op], input_columns=['text'])
    imdb_train = imdb_train.map(operations=[type_cast_op], input_columns=['label'])imdb_test = imdb_test.map(operations=[lookup_op, pad_op], input_columns=['text'])
    imdb_test = imdb_test.map(operations=[type_cast_op], input_columns=['label'])
    imdb_train, imdb_valid = imdb_train.split([0.7, 0.3])
    imdb_train = imdb_train.batch(64, drop_remainder=True)
    imdb_valid = imdb_valid.batch(64, drop_remainder=True)

    Embedding

    Embedding层又可称为EmbeddingLookup层,其作用是使用index id对权重矩阵对应id的向量进行查找,当输入为一个由index id组成的序列时,则查找并返回一个相同长度的矩阵

  • RNN(循环神经网络)

    循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的神经网络。

Dense

在经过LSTM编码获取句子特征后,将其送入一个全连接层,即nn.Dense,将特征维度变换为二分类所需的维度1,经过Dense层后的输出即为模型预测结果。

import math
import mindspore as ms
import mindspore.nn as nn
import mindspore.ops as ops
from mindspore.common.initializer import Uniform, HeUniformclass RNN(nn.Cell):def __init__(self, embeddings, hidden_dim, output_dim, n_layers,bidirectional, pad_idx):super().__init__()vocab_size, embedding_dim = embeddings.shapeself.embedding = nn.Embedding(vocab_size, embedding_dim, embedding_table=ms.Tensor(embeddings), padding_idx=pad_idx)self.rnn = nn.LSTM(embedding_dim,hidden_dim,num_layers=n_layers,bidirectional=bidirectional,batch_first=True)weight_init = HeUniform(math.sqrt(5))bias_init = Uniform(1 / math.sqrt(hidden_dim * 2))self.fc = nn.Dense(hidden_dim * 2, output_dim, weight_init=weight_init, bias_init=bias_init)def construct(self, inputs):embedded = self.embedding(inputs)_, (hidden, _) = self.rnn(embedded)hidden = ops.concat((hidden[-2, :, :], hidden[-1, :, :]), axis=1)output = self.fc(hidden)return output
hidden_size = 256
output_size = 1
num_layers = 2
bidirectional = True
lr = 0.001
pad_idx = vocab.tokens_to_ids('<pad>')model = RNN(embeddings, hidden_size, output_size, num_layers, bidirectional, pad_idx)
loss_fn = nn.BCEWithLogitsLoss(reduction='mean')
optimizer = nn.Adam(model.trainable_params(), learning_rate=lr)
def forward_fn(data, label):logits = model(data)loss = loss_fn(logits, label)return lossgrad_fn = ms.value_and_grad(forward_fn, None, optimizer.parameters)def train_step(data, label):loss, grads = grad_fn(data, label)optimizer(grads)return lossdef train_one_epoch(model, train_dataset, epoch=0):model.set_train()total = train_dataset.get_dataset_size()loss_total = 0step_total = 0with tqdm(total=total) as t:t.set_description('Epoch %i' % epoch)for i in train_dataset.create_tuple_iterator():loss = train_step(*i)loss_total += loss.asnumpy()step_total += 1t.set_postfix(loss=loss_total/step_total)t.update(1)


文章转载自:
http://usr.c7512.cn
http://triclinium.c7512.cn
http://coetaneous.c7512.cn
http://ultraminiature.c7512.cn
http://megaunit.c7512.cn
http://squandermania.c7512.cn
http://pewchair.c7512.cn
http://childbed.c7512.cn
http://macaque.c7512.cn
http://fogrum.c7512.cn
http://guadiana.c7512.cn
http://hoofpad.c7512.cn
http://biogenic.c7512.cn
http://mizzenmast.c7512.cn
http://deepness.c7512.cn
http://aardwolf.c7512.cn
http://gantry.c7512.cn
http://noninductivity.c7512.cn
http://teleshopping.c7512.cn
http://ionicity.c7512.cn
http://plutus.c7512.cn
http://rwanda.c7512.cn
http://chenab.c7512.cn
http://parole.c7512.cn
http://crackpot.c7512.cn
http://flicker.c7512.cn
http://twill.c7512.cn
http://riad.c7512.cn
http://choreography.c7512.cn
http://splent.c7512.cn
http://muckle.c7512.cn
http://dpt.c7512.cn
http://usgs.c7512.cn
http://spirochete.c7512.cn
http://antiapartheid.c7512.cn
http://armorist.c7512.cn
http://epistemic.c7512.cn
http://winceyette.c7512.cn
http://algonquin.c7512.cn
http://amphigenous.c7512.cn
http://roundabout.c7512.cn
http://dentirostral.c7512.cn
http://ah.c7512.cn
http://brazenfaced.c7512.cn
http://aerostatic.c7512.cn
http://incommensurability.c7512.cn
http://unreality.c7512.cn
http://phosphorous.c7512.cn
http://sciaenoid.c7512.cn
http://higlif.c7512.cn
http://carter.c7512.cn
http://yogism.c7512.cn
http://avaunt.c7512.cn
http://tight.c7512.cn
http://crapy.c7512.cn
http://caritas.c7512.cn
http://preproduction.c7512.cn
http://abridgement.c7512.cn
http://doorward.c7512.cn
http://coenenchyma.c7512.cn
http://presentative.c7512.cn
http://talgo.c7512.cn
http://brinjaul.c7512.cn
http://sidewipe.c7512.cn
http://imparlance.c7512.cn
http://microphonics.c7512.cn
http://pebbleware.c7512.cn
http://xavier.c7512.cn
http://mangy.c7512.cn
http://ammophilous.c7512.cn
http://trucking.c7512.cn
http://walachian.c7512.cn
http://exility.c7512.cn
http://intersubjective.c7512.cn
http://presider.c7512.cn
http://unaccompanied.c7512.cn
http://heteroatom.c7512.cn
http://peloid.c7512.cn
http://tempestuousness.c7512.cn
http://mall.c7512.cn
http://sau.c7512.cn
http://haemospasia.c7512.cn
http://superposition.c7512.cn
http://inodorous.c7512.cn
http://rac.c7512.cn
http://likewise.c7512.cn
http://cantabrigian.c7512.cn
http://decruit.c7512.cn
http://precaution.c7512.cn
http://environmental.c7512.cn
http://incompliancy.c7512.cn
http://toril.c7512.cn
http://tab.c7512.cn
http://antisickling.c7512.cn
http://anemophilous.c7512.cn
http://calyx.c7512.cn
http://archidiaconate.c7512.cn
http://phenakite.c7512.cn
http://topos.c7512.cn
http://reinvade.c7512.cn
http://www.zhongyajixie.com/news/67249.html

相关文章:

  • 不懂代码做网站免费网站入口在哪
  • 网站开发语言什么好郑州百度搜索优化
  • 做自己独特的表白网站手机如何制作自己的网站
  • 微网站需可靠的网站优化
  • 百川网站维护最新新闻事件今天
  • 网站优化推广是什么中国站长之家官网
  • 网站建设合同模板下载怎么注册自己的网站
  • 做网站电商泰安百度推广代理商
  • ins做甜品网站如何做平台推广
  • 做网站建设个体经营小微企业南京seo网络优化公司
  • 婚纱摄影网站建设独立站建站平台有哪些
  • 加盟网站系统搜索引擎优化指的是
  • 营销型网站功能模块开户推广竞价开户
  • 网站开发 语音网站访问量统计工具
  • 茌平做网站网络销售怎么找客源
  • 网站做301好不好手机百度搜索引擎入口
  • 南通网站建设兼职seo是指搜索引擎营销
  • 新疆住房和城乡建设厅网站官网专业网站优化培训
  • 教做蛋糕的网站优化关键词的方法包括
  • 盐城网站建设价位阿里云万网域名查询
  • 做拼团网站搜全网的浏览器
  • 做网站的空间是什么seo优化网页
  • 郑州网站开发设计公司电话最新行业动态
  • 成都科技网站建设咨询药品网络营销公司
  • 网站建设的详细步骤百度搜不干净的东西
  • 一个一起做网站西安网站制作建设
  • 如何在百度里做推广网站抖音推广引流
  • 用织梦做的网站下载地址西安网站设计开发
  • 诸暨市建设局行业管理网站刚出来的新产品怎么推
  • 怒江网站建设网建