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

襄阳市建设局网站o2o商超网站建设

襄阳市建设局网站,o2o商超网站建设,全国造价工程师管理系统官网,怎么开公司系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码#xff08;一#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存#xff08;二#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型部署#xff08;三#xff09; 【如何训…系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码一 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存二 【如何训练一个中英翻译模型】LSTM机器翻译模型部署三 【如何训练一个中英翻译模型】LSTM机器翻译模型部署之onnxpython四 训练一个翻译模型我们需要一份数据集以cmn.txt数据集为例 取前两行数据来看看如下 Wait! 等等 Hello! 你好。对于中译英我们希望让网络输入“Wait!”输出“等等”输入“Hello!”输出“你好。” 那么问题来了这样的数据要如何输入网络进行训练呢 显然需要进行编码大白话说就是用“0101…”这样的数据来表示这些文字为了方便表达后面称为字符。 先假设我们的训练数据只取第一行那就是只有“Wait! 等等”那么我们开始对它进行编码读取cmn.txt文件并取第一行数据中英文分别保存在target_texts input_texts,然后将所有的字符取出来中英文字符并分别保存在target_characters input_characters input_texts [] # 保存英文数据集 target_texts [] # 保存中文数据集 input_characters set() # 保存英文字符比如a,bc target_characters set() # 保存中文字符,比如你我她 with open(data_path, r, encodingutf-8) as f:lines f.read().split(\n)# 一行一行读取数据 for line in lines[: min(num_samples, len(lines) - 1)]: # 遍历每一行数据集用min来防止越出input_text, target_text line.split(\t) # 分割中英文# We use tab as the start sequence character# for the targets, and \n as end sequence character.target_text \t target_text \ninput_texts.append(input_text)target_texts.append(target_text)for char in input_text: # 提取字符if char not in input_characters:input_characters.add(char)for char in target_text:if char not in target_characters:target_characters.add(char)input_characters sorted(list(input_characters)) # 排序一下 target_characters sorted(list(target_characters)) num_encoder_tokens len(input_characters) # 英文字符数量 num_decoder_tokens len(target_characters) # 中文文字数量 max_encoder_seq_length max([len(txt) for txt in input_texts]) # 输入的最长句子长度 max_decoder_seq_length max([len(txt) for txt in target_texts])# 输出的最长句子长度print(Number of samples:, len(input_texts)) print(Number of unique input tokens:, num_encoder_tokens) print(Number of unique output tokens:, num_decoder_tokens) print(Max sequence length for inputs:, max_encoder_seq_length) print(Max sequence length for outputs:, max_decoder_seq_length)可以得到这样的数据 #原始数据Wait! 等等input_texts [Wait!] target_texts [\t等等\n]input_characters [!, W, a, i, t] target_characters [\t, \n, 等, ]然后我们就可以开始编码啦。 先对input_characters 于target_characters 进行编号也就是 [!, W, a, i, t]0 1 2 3 4 [\t, \n, 等, ]0 1 2 3 代码如下 input_token_index dict([(char, i) for i, char in enumerate(input_characters)]) target_token_index dict([(char, i) for i, char in enumerate(target_characters)])编号完之后就是 input_token_index {!: 0,W: 1,a: 2,i: 3,t: 4} target_token_index {\t: 0,\n: 1,等: 2,: 3}有了input_token_index 与target_token_index 我们就可以开始对输入输出进行编码先来看输入。 假设我们的输入只有一个字符W那么根据input_token_index 对W进行编码就如下 可看到W用向量01000表示了只有W的那个位置被标为1其余标为0 依次类推对Wait!进行编码结果如下 对中文进行编码也是一样的操作 因此输入输出分别可以用encoder_input_data与decoder_input_data这两个矩阵来表示了这两个矩阵里面的值是一堆01 [!, W, a, i, t] encoder_input_data [[[0. 1. 0. 0. 0.] W[0. 0. 1. 0. 0.] a[0. 0. 0. 1. 0.] i[0. 0. 0. 0. 1.] t[1. 0. 0. 0. 0.]]] !target_texts通过编码得到 [\t, \n, 等, ] decoder_input_data [[[1. 0. 0. 0.] \t[0. 0. 1. 0.] 等[0. 0. 1. 0.] 等[0. 0. 0. 1.] ![0. 1. 0. 0.]]] \n为了进一步说明我们这时候将训练集改为2也就是num_samples 2那么 input_texts [Wait!, Hello!] target_texts [\t等等\n, \t你好。\n] input_characters [!, H, W, a, e, i, l, o, t] target_characters [\t, \n, 。, 你, 好, 等, ]分别对输入输出的内容进行编码可得到 encoder_input_data [[[0. 0. 1. 0. 0. 0. 0. 0. 0.] # 第一句 Wait![0. 0. 0. 1. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 1. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 1.][1. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0.]][[0. 1. 0. 0. 0. 0. 0. 0. 0.] # 第二句 Hello[0. 0. 0. 0. 1. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 1. 0. 0.][0. 0. 0. 0. 0. 0. 1. 0. 0.][0. 0. 0. 0. 0. 0. 0. 1. 0.][1. 0. 0. 0. 0. 0. 0. 0. 0.]]]decoder_input_data [[[1. 0. 0. 0. 0. 0. 0.] # 第一句 \t等等\n[0. 0. 0. 0. 0. 1. 0.][0. 0. 0. 0. 0. 1. 0.][0. 0. 0. 0. 0. 0. 1.][0. 1. 0. 0. 0. 0. 0.]][[1. 0. 0. 0. 0. 0. 0.] # 第二句 \t你好。\n[0. 0. 0. 1. 0. 0. 0.][0. 0. 0. 0. 1. 0. 0.][0. 0. 1. 0. 0. 0. 0.][0. 1. 0. 0. 0. 0. 0.]]]下面是相应的代码 # mapping token to index easily to vectors # 处理方便进行编码为向量 # { # a: 0, # b: 1, # c: 2, # ... # z: 25 # } input_token_index dict([(char, i) for i, char in enumerate(input_characters)]) target_token_index dict([(char, i) for i, char in enumerate(target_characters)])# np.zeros(shape, dtype, order) # shape is an tuple, in here 3D encoder_input_data np.zeros( # (12000, 32, 73) 数据集长度、句子长度、字符数量(len(input_texts), max_encoder_seq_length, num_encoder_tokens),dtypefloat32) decoder_input_data np.zeros( # (12000, 22, 2751)(len(input_texts), max_decoder_seq_length, num_decoder_tokens),dtypefloat32) decoder_target_data np.zeros( # (12000, 22, 2751)(len(input_texts), max_decoder_seq_length, num_decoder_tokens),dtypefloat32)# 遍历输入文本input_texts和目标文本target_texts中的每个字符 # 并将它们转换为数值张量以供深度学习模型使用。 #编码如下 #我你他这国是家人中 #1 0 0 0 1 1 0 1 1我是中国人 #1 0 1 0 0 1 1 1 0他是我家人 # input_texts contain all english sentences # output_texts contain all chinese sentences # zip(ABC,xyz) Ax By Cz, looks like that # the aim is: vectorilize text, 3D # zip(input_texts, target_texts)成对取出输入输出比如input_text 你好target_text you goodfor i, (input_text, target_text) in enumerate(zip(input_texts, target_texts)):for t, char in enumerate(input_text):# 3D vector only z-index has char its value equals 1.0encoder_input_data[i, t, input_token_index[char]] 1.for t, char in enumerate(target_text):# decoder_target_data is ahead of decoder_input_data by one timestepdecoder_input_data[i, t, target_token_index[char]] 1.if t 0:# decoder_target_data will be ahead by one timestep# and will not include the start character.# igone t0 and start t1, meansdecoder_target_data[i, t - 1, target_token_index[char]] 1.在进行模型推理的时候你同样需要相同的一份input_token_index 与target_token_index 那么就需要将input_characters与target_characters保存下来在推理之前将你输入的内容进行编码因为只有同一份位置编码你的网络才能认识要不然全乱套了下面是将input_characters与target_characters保存为txt与读取的方法 # 将 input_characters保存为 input_words.txt 文件 with open(input_words.txt, w, newline) as f:for char in input_characters:if char \t:f.write(\\t\n)elif char \n:f.write(\\n\n)else:f.write(char \n)# 将 target_characters保存为 target_words.txt 文件 with open(target_words.txt, w, newline) as f:for char in target_characters:if char \t:f.write(\\t\n)elif char \n:f.write(\\n\n)else:f.write(char \n)# 从 input_words.txt 文件中读取字符串 with open(input_words.txt, r) as f:input_words f.readlines()input_characters [line.rstrip(\n) for line in input_words]# 从 target_words.txt 文件中读取字符串 with open(target_words.txt, r, newline) as f:target_words [line.strip() for line in f.readlines()]target_characters [char.replace(\\t, \t).replace(\\n, \n) for char in target_words]#字符处理以方便进行编码 input_token_index dict([(char, i) for i, char in enumerate(input_characters)]) target_token_index dict([(char, i) for i, char in enumerate(target_characters)])
http://www.zqtcl.cn/news/647884/

相关文章:

  • 国内地铁建设公司网站大连做网站外包
  • 微网站营销是什么网站图片上传代码
  • 外包公司做网站多少用vs做的网站怎么打开
  • 兴义城乡建设部网站企业服务器配置方案
  • 淘宝客网站根目录wordpress调用导航代码
  • 海外免费网站推广网站开发项目报告书
  • 大气的金融网站深圳专门做兼职的网站
  • 最新网站备案四平网站公司
  • 济宁恒德建设有限公司网站互联网营销师报名入口
  • 做灯饰的企业都会在哪些网站网站排名恢复
  • 互联网公司网站建设价格跨境支付互联互通
  • 杭州 高端网站 开发宜昌建设网站公司
  • 咋样做网站快照济南建设质量协会网站
  • 学校网站怎么建设兄弟网络(西安网站建设制作公司)
  • 长春市城乡建设局网站photoshop破解版下载免费中文版
  • 吕梁网站设计天津高端网页制作
  • 建一个网站做cpa联盟做淘客的网站都有哪几个
  • 中国建设银行网站对公业务wordpress 文章归档页面
  • 东软 网站群平台建设用个人电脑做网站服务器
  • 音乐播放网站开发pc端营销网站的关键字
  • 江门网站推广宿州官方网站建设
  • 企业网站建设策划书范文江苏高端网站建设
  • 网站开发 浏览器济宁网站建设服务
  • 整套网站建设网站开发中如何实现gps定位
  • 网站建设计划表福州自助建站
  • 网站做的比较好的公司吗2017年做网站多少钱
  • 基础展示营销型型网站重庆百度总代理
  • 网站建设 技术可行性这是我自己做的网站
  • 西安网站策划关键词优化哪家好
  • 能看建设动漫黄图的网站海外仓一件代发平台