本文是im2latex系列的第二篇,希望能够讲清楚
如何将seq2seq模型应用于LaTex生成
如何使用Tensorflow实现
如果你对Seq2Seq还不熟悉。
[请看seq2seq介绍](https://anxingle.github.io)
继续阅读 »
在阅读《解析深度学习:语音识别实践》时,也会参考一些博客,看到好的也会整理一下分享出来。本文主要通过浅显的语言来展示语音识别的基本过程和原理。本文大部分内容转载至:语音识别的技术原理是什么?。
语音识别技术,也被称为自动语音识别AutomaTIc Speech RecogniTIon(ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。与说话人识别及说话人确认不同,后者尝试识别或确认发出语音的说话人而非其中所包含的词汇内容。下面我们来详细解读语音识别技术原理。
首先,我们知道声音实际上是一种波。常见的mp3等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如Windows P
继续阅读 »
今天谈谈“层”这个字,如果要让我在计算机科学中挑选一个最神奇的字,我会选择“层”字,因为生活中随处可见使用“层”的例子。
先从我们身边的电脑说起,电脑就是一个典型的层次化产品的例子。从下往上看,第一层是看得见摸得着的硬件,比如CPU、内存条和硬盘等,第二层是BIOS(Basic Input Output System),即基本输入输出系统,主要作用是检测硬件和引导操作系统,第三层就是操作系统,比如Windows、Linux和Mac等,第四层就是我们常用的软件比如微信、QQ和浏览器等,这样做有什么好处呢?其实最主要的目的就是为了简单方便。你可以想象下如果使用QQ需要特定的硬件、特定的BIOS和特定的操作系统,那估计就没几个人使用了。
继续阅读 »
《TCP/IP详解卷一》读书笔记
第一章 概述
1.2 分层
TCP/IP 通常被认为是一个四层协议系统:
链路层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡
网络层,包括 IP 协议 , ICMP 协议 , IGMP 协议
运输层,包括 TCP , UDP . TCP 为两台主机提供高可靠性的数据通信,包含把应用层交给她的数据分成合适的小块交给网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。 UDP 则为应用层提供非常简单的服务,他只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能达到另一端。
应用层负责处理特定的应用程序细节。基本都包含以下应用:
Telnet 远程登录
F
继续阅读 »
mdtoc start
内容简介
分布式系统的可靠性问题: 冗余和多副本
EC的基本原理
栗子🌰1: 实现k+1的冗余策略, 大概需要小学3年级的数学知识
栗子🌰2: 实现k+m的冗余策略, 大概需要初中2年级的数学知识
增加1个校验块, 变成k+2
实现k+m 的冗余
EC编码矩阵的几何解释
k=2, 为2个数据块生成冗余校验块
k=3, 4, 5...时的数据块的冗余
通过高次曲线生成冗余数据
从曲线方程得到的系数矩阵
EC解码过程: 求解n元一次方程组
[Vandermonde] 矩阵保证方程组有解
新世界: 伽罗华域 [Galois-Field] GF(7)
EC在计算机里的实现: 基于 伽罗华域 [Galois-Fiel
继续阅读 »
在 JavaScript 中处理异步和回调就是家常便饭,我们通常会面对这样一些问题:
1. 如何优雅滴组织我们的回调代码
2. 对异步函数错误处理的最佳实践是什么
3. 异步嵌套问题
4. 怎样使我们的代码可读性和可维护性更高
Programs are meant to be read by humans and only incidentally for computers to execute. 程序是给人读的,只是顺带让计算机执行一下。 ——《编写可维护的JavaScript》@Donald Knuth
当然,最常见也是最简单的处理方式就是,直接将回调函数或错误处理函数作为异步函数的参数,在异步函数返回时进行相应的调用,这
继续阅读 »
英语是计算机的母语,是程序的母语,所以必然是程序员的母语。程序中的变量名、函数名起得好不好是决定代码质量和可维护性的最关键因素。高质量的代码应该是这样的:代码基本上是自解释的(self-explanatory),不需要太多注释,不管代码的规模有多大,具有相关知识背景的读过文档的人都可以立刻上手、立刻参与维护和开发。要想使代码能够自解释,给变量和函数起个好名字很关键,很显然,只能用英文起名字,一是用汉语拼音起名字可读性很差,二是英文单词通常比汉语更expressive(看吧,如果用汉语来说,就得说“表达能力更强”、“更有表现力”这么罗嗦),由于程序的复杂性,变量和函数往往表示一些很抽象的概念,起个既准确又简洁的名字并不容易,可是很多时
继续阅读 »
Atomic一词跟原子有点关系,后者曾被人认为是最小物质的单位。
计算机中的Atomic是指不能分割成若干部分的意思。如果一段代码被认为是Atomic,则表示这段代码在执行过程中,是不能被中断的。
通常来说,原子指令由硬件提供,供软件来实现原子方法(某个线程进入该方法后,就不会被中断,直到其执行完成)。
DK1.5的原子包:java.util.concurrent.atomic
这个包里面提供了一组原子类。其基本的特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择
继续阅读 »
Samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
如果您工作的环境中既有微软的Windows又有Linux,那么,一个共享文件及目录的方式便是通过一个跨平台网络文件共享协议:
继续阅读 »
1. 设计模式概念
设计模式这个术语是由Erich Gamma等人在1990年代从建筑设计领域引入到计算机科学的。它是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。
设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象设计模式通常以类或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。
并非所有的软件模式都是设计模式,设计模式特指软件“设计”层次上的问题。还有其它非设计模式的模式,如架构模式。同时,算法不能算是一种
继续阅读 »