李沐动手学深度学习V2-机器翻译和数据集
一. 机器翻译和数据集
1. 介绍
机器翻译的数据集是由源语言和目标语言的文本序列对组成的,因此需要一种完全不同的方法来预处理机器翻译数据集, 而不是复用语言模型的预处理程序。
2. 下载和预处理数据集
首先,下载一个由Tatoeba项目的双语句子对组成的“英-法”数据集,数据集中的每一行都是制表符分隔的文本序列对,序列对由英文文本序列和翻译后的法语文本序列组成。注意每个文本序列可以是一个句子,也可以是包含多个句子的一个段落。在将英语翻译成法语的机器翻译问题中,英语是源语言(source language),法语是目标语言(target language)。
import torch
import os
import d2l.torch
d2l.torch.DATA_HUB['fra-eng'] = (d2l.torch.DATA_URL + 'fra-eng.zip','94646ad1522d915e7b0f9296181140edcf86a4f5')
"""载入“英语-法语”数据集"""
def read_data_nmt():data_dir = d2l.torch.download_extract('fra-eng')with open(os.path.join(data_dir,'fra.txt'),'r',encoding='utf-8') as f:return f.read()
raw_text = read_data_nmt() #注意raw_text是一个String类型
print(raw_text[:80])
'''
输出结果如下:
Go. Va !
Hi. Salut !
Run! Cours !
Run! Courez !
Who? Qui ?
Wow! Ça alors !
Fire!
'''
下载数据集后,原始文本数据需要经过几个预处理步骤,例如用空格代替不间断空格(non-breaking space), 使用小写字母替换大写字母,并在单词和标点符号之间插入空格。
# 将字符和标点符号,.!?以空格方式分隔开,同时将不间断空格用空格符替换,用于下面tokenize_nmt()处理
def process_nmt(text):def no_space(char,pre_char):return char in set(',.!?') and pre_char != ' '#text就是一个String类型,将不间断空格用空格符替换# 使用空格替换不间断空格# 使用小写字母替换大写字母text = text.replace('\u202f',' ').replace('\xa0',' ').lower()# 在单词和标点符号之间插入空格out = [' '+char if i>0 and no_space(char,text[i-1]) else char for i,char in enumerate(text)]return ''.join(out)
text = process_nmt(raw_text)
print(text[:80])
3. 词元化
在机器翻译中,将单词级词元化,而不是将字符级词元化,下面的tokenize_nmt()函数对前num_examples个文本序列对进行词元化, 其中每个词元要么是一个词,要么是一个标点符号,此函数返回两个词元列表:source和target: source[i]是源语言(这里是英语)第
总结 编码过程 数据 数据预处理 模型 参数,初始化参数 超参数 损失函数,先计算损失,清空梯度(防止有累积的梯度),再对损失后向传播计算损失关于参数的梯度 优化算法,使用优化算法更新参数 训练求参数 ... # 权重衰退是广泛应用的正则化技术 %matplotlib inline import torch from torch import nn from d2l import torch as d2l ... 一.全卷积网络FCN 1. 介绍 语义分割是对图像中的每个像素分类,全卷积网络(fully convolutional network,FCN)采用卷积神经网络实现了从图像像素到像素类别的变换 ,与前 ... 学习深度学习时候,很多人参考的是李沐的动手学深度学习Pytorch版本(附上官方地址:https://tangshusen.me/Dive-into-DL-PyTorch/#/). 在学习3.5.1节 ... 虽然之前已经学过这部分内容和深度学习中的基础知识,但总觉得学的不够系统扎实,所以希望再通过沐神的课程以及书籍,系统条理的学习一遍.在读书过程中,利用导图做了一下梳理,形成了这个读书笔记.如有侵权,请联 ... 本地安装d2l 由于之前试了很多次d2l课本的安装方法失败了,这里提供一种我可以成功安装d2l包的方法. pytorch安装 首先安装cuda.cudnn.pytroch(gpu版本).可以参考这篇文 ... 目录 一.相关资料连接 1.1 李沐视频 1.2 代码.PPT 二.代码及笔记(使用Jupyter Notebook) 2.1 线性回归从零开始实现 2.1.1 基本概念 2.1.2 基础优化算法 2 ... 1.安装miniconda windows下安装,去清华大学开源镜像下载,速度比较快. 选中Miniconda3-latest-Windos-x86_64.exe下载安装包(目前最新的是py3.9) ... 我们从来没有想过数据最初从哪里来?以及我们计划最终如何处理模型的输出? 根据测试集的精度衡量,模型表现得非常出色. 但是当数据分布突然改变时,模型在部署中会出现灾难性的失败. 解决方案很简单(要求&q ...李沐动手学深度学习V2-机器翻译和数据集相关推荐
最新文章
热门文章