编码转换

NLP系列(7)_Transformer详解

这一生的挚爱 提交于 2019-12-27 16:31:12
Ref https://jalammar.github.io/illustrated-transformer/ , https://blog.csdn.net/han_xiaoyang/article/details/86560459 编者按:前一段时间谷歌推出的BERT模型在11项NLP任务中夺得SOTA结果,引爆了整个NLP界。而BERT取得成功的一个关键因素是Transformer的强大作用。谷歌的Transformer模型最早是用于机器翻译任务,当时达到了SOTA效果。Transformer改进了RNN最被人诟病的训练慢的缺点,利用self-attention机制实现快速并行。并且Transformer可以增加到非常深的深度,充分发掘DNN模型的特性,提升模型准确率。在本文中,我们将研究Transformer模型,把它掰开揉碎,理解它的工作原理。 正文: Transformer由论文《Attention is All You Need》提出,现在是谷歌云TPU推荐的参考模型。论文相关的Tensorflow的代码可以从GitHub获取,其作为Tensor2Tensor包的一部分。哈佛的NLP团队也实现了一个基于PyTorch的版本,并注释该论文。 在本文中,我们将试图把模型简化一点,并逐一介绍里面的核心概念,希望让普通读者也能轻易理解。 Attention is All

mysql 的 set names 做了什么?

夙愿已清 提交于 2019-12-27 13:23:24
本文转自 https://blog.csdn.net/czh500/article/details/86665509 。 set names charset_name (如 set names utf8mb4)是以下 3 个语句的快捷方式 SET character_set_client = charset_name; SET character_set_results = charset_name; SET character_set_connection = charset_name; character_set_client 是指客户端发送过来的语句的编码; character_set_connection 是指mysqld收到客户端的语句后,要转换到的编码; character_set_results 是指server执行语句后,返回给客户端的数据的编码。 对人来说,能够理解的是各种各样的符号,而对计算机来说,只能理解二进制,二进制和符号之间的对应关系就是编码。不同地域国家都有自己的一套符号集合,每个都各自用一组二进制数字表示,从而形成了不同的编码,字符集就可以看作是编码和符号的对应关系集合。同一个二进制数在不同的字符集下可能对应完全不一样的字符,如在GBK字符集中, C4E3 对应的是 你 ,而在big5字符集中对应的是 斕 ,而 你 在unicode中的编码是 4F60

vim编码问题

大憨熊 提交于 2019-12-27 07:16:10
当我们用vim或者gvim打开磁盘中的一个文件时,会发生什么事情呢?这得从四个变量说起。 这四个变量就是 fileencodings 、 fileencoding 、 encoding 和 termencoding 。 encoding Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。默认是根据你的locale选择.用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在.vimrc 中改变它的值才有意义。你可以用另外一种编码来编辑和保存文件,如你的vim的encoding为utf-8,所编辑的文件采用cp936编码,vim会 自动将读入的文件转成utf-8(vim的能读懂的方式),而当你写入文件时,又会自动转回成cp936(文件的保存编码). fileencoding 当 Vim 从磁盘上读取文件的时候,会对文件的编码进行探测。如果文件的编码方式和 Vim 的内部编码方式不同,Vim 就会对编码进行转换。转换完毕后,Vim 会将 fileencoding 选项设置为文件的编码。当 Vim 存盘的时候,如果 encoding 和 fileencoding 不一样,Vim 就会进行编码转换。因此,通过打开文件后设置 fileencoding ,我们可以将文件由一种编码转换为另一种编码。但是,由前面的介绍可以看出,

Vim字符编码/中文乱码详解

不问归期 提交于 2019-12-27 07:11:37
注:本文部分内容是从网络上复制,并在基础上进行了改正。 在Vim中,有四个与编码相关的配置项,分别是encoding、fileencoding、fileencodings和termencoding。其含义分别如下: 1. encoding encoding是Vim内部使用的字符编码方式,当我们设置了 encoding 之后, Vim 内部所有的 buffer、 寄存器、 脚本中的字符串等, 全都使用这个编码。 Vim 在工作的时候, 如果编码方式与它的内部编码不一致, 它会先把编码转换成内部编码。 如果工作用的编码中含有无法转换为内部编码的字符, 在这些字符就会丢失。 因此,在选择 Vim 的内部编码的时候, 一定要使用一种表现能力足够强的编码, 以免影响正常工作。 由于 encoding 选项涉及到 Vim 中所有字符的内部表示, 因此只能在 Vim 启动的时候设置一次。 在 Vim 工作过程中修改 encoding 会造成非常多的问题。 如果没有特别的理由,请始终将 encoding 设置为 utf-8。 set encoding=utf-8 对于win环境下的GVim,为防止菜单上出现中文乱码,可以进行如下设置: source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim 2. fileencoding 当 Vim

Python基础第十天---对象持久化与字符串处理机制

风流意气都作罢 提交于 2019-12-27 03:32:33
文章目录 一、对象持久化 对象持久化必要性 使用格式化文本文件 1文本文件操作 内置函数eval,它可以将读到的字符串转换为Python的表达式,此时可以将他当作Python语句来运行了。 2使用常见的pickle进行对象持久化 序列化到字符串中,再反序列化为原来类型 序列化到二进制文件中,再反序列化为原来类型 3使用常见的shelve进行对象持久化 二、字符串的本质 字符串类型分类 三种类型的转换 bytes字节类型 bytearray字节数组类型,支持原位改变,类似列表类型 概述 三 、UTF-8、ASCII常用字符串编码 ASCII 0-127代码点之间 latin-1为拉丁1字符码 UTF-16 UTF-32 通用可变字长UTF-8,通用性好。 四、字符的编码与解码 编码 解码 字符串默认编码解码 文件读取的编码与解码 字符串BOM处理(字节顺序标记) 一、对象持久化 对象持久化必要性 概论:所有程序运行过程,就是使用我们编写的指令,来调度运算我们特定的数据或数据结构,但这个运算过程在内存里边;我们知道内存不是永久性存储,当我们断电,内存中的状态或数据就会丢失,当然在实际计算可能需要将当前需要计算的某个数据结果永久存储起来,就要用到对象的持久化。如:玩游戏过关时,这个状态是在内存中表现的,若想明天接着玩,我们可以把当前进度保存一下

python学习——开启python

三世轮回 提交于 2019-12-26 22:33:59
一、Hello World程序 在windows下F盘创建一个文件叫hello.py并输出 1 F:\\python hello.py 然后再windows命令执行 1 print ( " Hello World! " ) 二、变量、字符编码 声明变量 name="binbin" 上述代码声明了一个变量,变量名为:name,变量的值为:"binbin" 变量定义的规则: 变量名只能是字母、数字或下划线的任意组合 变量名的不能以数字开头 以下关键字不能声明变名量[and,as,assert,break,class,continue,def,del,elif,else,except,exec,finally,for,from,global,if,import,in,is,lambda,not,or,pass,print,raise,return,try,while,with,yield] 变量的赋值 name="hinbin" name2=name print(name,name2) name="huanxue" print(name,name2) 上述变量第一个输出的为两个binbin,第二个输出的是huanxue binbin,name把地址给name2所以name赋值为binbin,后面name自己指向huanxue所以自己的值改为huanxue这时候name2的值没变

Java中properties文件编码问题

て烟熏妆下的殇ゞ 提交于 2019-12-26 09:30:27
问题一:Transparent native-to-ascii conversion是什么 在学习Spring boot的时候,通过 @ConfigurationProperties 注解来获取配置信息时,中文乱码,老师说需要在设置中设置properties文件编码格式为UTF-8而且在IDEA中需要勾选 Transparent native-to-ascii conversion : 虽然确实解决了中文乱码的问题,但是很奇怪为什么要勾选这个 Transparent native-to-ascii conversion ,这个东西的作用是什么呢? 查找资料后发现就是在运行的时候将文件转换成Unicode编码。什么意思呢,也就是在文件展示是UTF-8编码,但是实际运行的时候把内容转换成了Unicode编码: 图一 图二 图一是IDEA中填写的内容,图二是通过Editplus打开文件时显示的内容,很明显可以看到IDEA自动转换了文件编码格式,这个就是 Transparent native-to-ascii conversion 的作用。 来源: CSDN 作者: SenKnight 链接: https://blog.csdn.net/java_doctor/article/details/103099442

Java中编码问题

丶灬走出姿态 提交于 2019-12-26 08:07:57
在开发过程中经常会遇到一会乱码问题,不是什么大问题,但是也挺烦人的,今天来将我们开发总结的经验记录下来,希望可以给大家一些帮助。 一些概念: 字符:人们使用的记号,抽象意义上的一个符号。比如:‘1’,‘中’,‘a’ 字节:计算机中存储数据的单元,一个8位的二进制数,是一个很具体的存储空间 字符集:使用哪些字符。也就是说哪些汉字,字母和符号会被收入标准中。所包含“字符”的集合就叫做“字符集”。 编码:规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定就叫做“编码” 平常我们所说的“字符集”,比如:GB2312, GBK, JIS 等,除了有“字符的集合”这层含义外,同时也包含了“编码”的含义。 各种编码: ASCII 码   因为计算机只认识数字,所以我们在计算机里面的一切数据都是以数字来表示,因为英文字符有限,所以规定使用的字节的最高位是 0,每一个字节都是以 0-127 之间的数字来表示。比如 A 对应 65,a 对应 97。这便是 美国标准信息交换码,ASCII码 GB2312 码   随着计算机在全球的普及,很多国家和地区都把自己的字符引入了计算机,比如汉字。此时发现一个字节能表示的数字范围太小,不能包含所有的中文汉字。那么就规定使用两个字节来表示一个汉字。   规定:原有的 ASCII 字符的编码保持不变,仍然使用一个字节表示

Python学习笔记(四)字符串型

☆樱花仙子☆ 提交于 2019-12-26 01:19:32
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言。 创建字符串很简单,只要为变量分配一个值即可 View Code 对于单个字符的编码,Python提供了 ord() 函数获取字符的整数表示, chr() 函数把编码转换为对应的字符 View Code 如果知道字符的整数编码,还可以用十六进制这么写 str : 1 >>> '\u4e2d\u6587' 2 '中文' 由于Python的字符串类型是 str ,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把 str 变为以字节为单位的 bytes 。 Python对 bytes 类型的数据用带 b 前缀的单引号或双引号表示 1 >>> x = b'ABC' 2 3 >>> type(x) 4 <class 'bytes'> 注意区分 'ABC' 和 b'ABC' ,前者是 str ,后者虽然内容显示得和前者一样,但 bytes 的每个字符都只占用一个字节。 以Unicode表示的 str 通过 encode() 方法可以编码为指定的 bytes ,例如: 1 >>> 'ABC'.encode('ascii') 2 b'ABC' 3 4 >>>

python基础归结

荒凉一梦 提交于 2019-12-26 01:18:12
#!/usr/bin/env python3 # -*- encoding: utf-8 -*- print('Hello world') print('中国心') python程序本质是脚本语言,与shell相同,都是顺序逐条语句执行,语句执行完成后退出。没有main函数。 /*--> */ /*--> */ 00.python 程序格式 # 开头的语句是注释,其他每一行都是一个语句。 语句以冒号(:)结尾时,缩进的语句视为代码块(没有 C 语言中 {} 区分代码块)。 约定俗称, 4 个空格缩进, Tab 或空格均可以,但要保持一致。 python 大小写敏感。 0.unicode&utf-8 在计算机内存中,统一使用unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为utf-8编码。 用记事本编辑的时候,从文件读取的utf-8字符被转换为unicode字符到内存里,编码完成保存时再把unicode转换为utf-8保存到文件。 浏览网页时,服务器会把动态生成的unicode内容转换为utf-8再传输给浏览器,所以会看到许多网页的源码上会有类似<meta charset="UTF-8" />的信息,表示该网页正是用的utf-8编码。 1. 除法 Python中有两种除法,一种除法是/,/除法计算结果永远是浮点数。 地板除//,计算结果永远是整数。 余数运算%。