关于 torch.nn.CrossEntropyLoss 的计算
torch中计算损失函数时,会使用到名为 CrossEntropyLoss 的交叉熵损失函数,这个函数的公式为: $$ \begin{aligned} loss(x,class)&=−log\frac{∑_jexp(x[j])}{exp(x[class])}\ &= −x[class] + log(∑_jexp(x[j])) \end{aligned} $$ class 表示该样本的分类,x[j] 表示预测函数的第 j 个输出,关于此公式的解释如下: 假设我们的预测函数的输出如下 $$ [[0.0541, 0.1762, 0.9489 ], [−0.0288, −0.8072, 0.4909]] $$ 假设我们的应该的分类如下 $$ [0,2] $$ 即第一个样本为类别class=0,第二个样本为类别class=2 那么 loss...
关于 Couesrea 奖学金的申请
Coursera是免费大型公开在线课程项目,由美国斯坦福大学两名计算机科学教授创办。旨在同世界顶尖大学合作,在线提供免费的网络公开课程。Coursera的首批合作院校包括斯坦福大学、密歇根大学、普林斯顿大学、宾夕法尼亚大学等美国名校。 Coursera与另外1达成合作协议。其课程报名学生突破了150万,来自全球190多个国家和地区,而网站注册学生为68万。注册124门课程。目前新增的大学包括了佐治亚理工学院、杜克大学、华盛顿大学、加州理工学院、莱斯大学、爱丁堡大学、多伦多大学、洛桑联邦理工学院 - 洛桑(瑞士)、约翰·霍普金斯大学公共卫生学院、加州大学旧金山分校、伊利诺伊大学厄巴纳 - 香槟分校以及弗吉尼亚大学。 除了免费课程之外还有一些付费性质的课程,但是也会有相应的课程福利,比如提供运算的服务器之类的。但是费用可能较为高。毕竟是学生嘛,Coursera也是提供了一套完整的助学金申请方案,可以用于助学金申请。 于是乎,就做了一个助学金申请模版 I am very interested in this course. I believe that this course...
手写Promise
初始结构 我们在 New 一个 Promise 里的时候肯定是需要传入参数的,不然这个实例用处不大,而这个参数我们知道是一个函数,而且当我们传入这个函数参数的时候,这个函数参数会被自动执行。 因此我们需要在类的 constructor 里面添加一个参数,这里就用 func 来作为形参,并且执行一下这个参数,接下来需要为这个函数参数传入他自己的参数,也就是 resolve 和 reject,原生的 Promise 里面可以传入 resolve,reject 两个参数,那么我们也得允许手写这边可以传入这两个参数。 12345class Promise { constructor(func) { func(resolve,reject); }} 但是这样写明显有问题,因为手写这边不知道在哪里调用 resolve 和 reject 这两个参数,毕竟 resolve 和 reject 还没有定义。因此,就需要创造出这两个对象,有一点我们要知道的是,resolve、reject 也是以函数的形式来执行的,我们在原生...
关于npm和yarn
什么是 NPM NPM(全称Node Package Manager,即node包管理器) 是Node.js默认的、以JavaScript编写的软件包管理系统 npm 来分享和使用代码已经成了前端的标配 官网: https://www.npmjs.com npm被全球超过1100万开发人员所依赖 拥有超过一百万个软件包,是世界上最大的软件注册表 安装NPM npm是Node.js默认的软件包管理系统 安装完毕node后,会默认安装好npm npm本身也是基于Node.js开发的软件 下载Node: http://nodejs.cn NPM 的使用 123456789101112131415161718192021222324npm -v #通过查看版本,看npm是否安装成功npm install <Module Name> #使用 npm 命令安装模块npm install <Module Name> -g #可以直接在命令行里使用npm list -g #查看所有全局安装的模块npm list vue...
关于Git
版本控制 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。 实现跨区域多人协同开发 追踪和记载一个或者多个文件的历史记录 组织和保护你的源代码和文档 统计工作量 并行开发、提高开发效率 跟踪记录整个软件的开发过程 减轻开发人员的负担,节省时间,同时降低人为错误 简单说就是用于管理多人协同开发项目的技术。 没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。 无论是工作还是学习,或者是自己做笔记,都经历过这样一个阶段!我们就迫切需要一个版本控制工具! 常见的版本控制工具 主流的版本控制器有如下这些: Git SVN(Subversion) CVS(Concurrent Versions System) VSS(Microsoft Visual SourceSafe) TFS(Team...
关于 this 指向的理解
函数内 this 的指向 这些 this 的指向,是当我们调用函数的时候确定的。 调用方式的不同决定了this 的指向不同一般指向我们的调用者.  1. 普通函数 this 指向window 1234function fn() { console.log('普通函数的this' + this);}window.fn(); 2. 对象的方法 this指向的是对象 o 123456var o = { sayHi: function() { console.log('对象方法的this:' + this); }}o.sayHi(); 3. 构造函数 this 指向 ldh 这个实例对象 原型对象里面的this 指向的也是...
关于 AJAX 的理解
原生AJAX 1.1 AJAX 简介 AJAX 全称为Asynchronous JavaScript And XML,就是异步的 JS 和 XML。 通过AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。 AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。 1.2 XML 简介 XML 可扩展标记语言。 XML 被设计用来传输和存储数据。 XML 和 HTML 类似,不同的是 HTML 中都是预定义标签,而 XML 中没有预定义标签, 全都是自定义标签,用来表示一些数据。 比如说我有一个学生数据: name = “孙悟空” ; age = 18 ; gender = “男” ; 用 XML 表示: 12345<student><name>孙悟空</name><age>18</age><gender>男</gender></student> 用 JSON...
jQuery 入门
jQuery 入门 jQuery 概述 JavaScript 库 JavaScript库:即 library,是一个封装好的特定的集合(方法和函数)。从封装一大堆函数的角度理解库,就是在这个库中,封装了很多预先定义好的函数在里面,比如动画animate、hide、show,比如获取元素等。 简单理解∶就是一个JS文件,里面对我们原生js代码进行了封装,存放到里面。这样我们可以快速高效的使用这些封装好的功能了。 比如jQuery,就是为了快速方便的操作DOM,里面基本都是函数(方法)。 常见的 JavaScript 库 jQuery Prototype YUI Ext JS 移动端的 zepto jQuery 的概念 jQuery 是一个快速、简洁的JavaScript库,其设计的宗旨是“write Less, Do More”,即倡导写更少的代码,做更多的事情。 j 就是 JavaScript;Query查询;意思就是查询 js,把 js 中的DOM 操作做了封装,我们可以快速的查询使用里面的功能。 jQuery 封装了...
PC&移动端网页特效
PC 端网页特效 元素偏移量 offset 系列 offset 概述 offset 翻译过来就是偏移量,我们使用 offset 系列相关属性可以动态的得到该元素的位置(偏移)、大小等 获得元素距离带有定位父元素得到位置 获得元素自身的大小(宽度高度) 注意:返回的数值都不带单位 常用属性 offsetTop offsetLeft 以带有定位的父亲为准 offsetParent 返回带有定位的父亲,否则返回 body offsetWidth offsetHeight 元素可视区 client 系列 概述 client 翻译过来就是客户端,我们使用 client 系列的相关属性来获取元素可视区的相关信息。通过client系列的相关属性可以动态的得到该元素的边框大小、元素大小等。 元素滚动 scroll 系列 概述 scroll 翻译过来就是滚动的,我们使用 scroll 系列的相关属性可以动态的得到该元素的大小、滚动距离等 动画函数封装 动画实现原理 通过定时器 setInterval()...
关于高级事件和 BOM 浏览器对象类型
高级事件 注册事件 给元素添加事件成为注册事件或者绑定事件 传统方式和方法监听注册方式 传统注册 利用 on 开头的事件 onclick 1<button onclick = alert("hi~")></button> 1btn.onclick = function(){} 特点:注册事件的唯一性 同一元素同一事件只能设置一个处理函数,最后注册的处理函数将会覆盖前面注册的处理函数 方法监听注册方式 w3c 标准 推荐方式 addEventListener() 是一个方法 1addEventListener(type, listener[, useCapture]) type 事件类型字符串,比如click mouseover 注意这里不要带on listener 事件处理函数,事件发生时,会调用该监听函数 可选参数,是一个布尔值,默认是false attachEvent 事件监听方式 ie9 之前的版本支持 生产版本一般不使用 IE9...