tensorflow入门
首先是 tensorflow 及其相关包的安装,作者本人使用的是
miniconda,安装命令如下
conda create -n 'tensorflow'
activate tensorflow
conda install -c conda-forge tensorflow
conda install scikit-learn
conda install -c conda-forge pandas
conda install -c conda-forge matplotlib
conda install -c conda-forge seaborn
代码仓库为 deeplearning-ai 的
git clone https://github.com/https-deeplearning-ai/tensorflow-1-public
首先要讲一下机器学习和传统编程的区别,传统编程在于通过输入规则和数据,得到结果;机器学习则是通过输入结果和数据,得到规则,即如下图所示
首先可以做一个例子 x = -1, 0, 1, 2, 3, 4 y = -3, -1, 1, 3 ...
关于 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 函数则为: \[
\begin{aligned}
\frac{e^{0.0541}}{e^{0.0541}+e^{0.1762}+e^{0.9489}}&=0.2185\\
\frac{e^{0 ...
关于 Couesrea 奖学金的申请
Coursera是免费大型公开在线课程项目,由美国斯坦福大学两名计算机科学教授创办。旨在同世界顶尖大学合作,在线提供免费的网络公开课程。Coursera的首批合作院校包括斯坦福大学、密歇根大学、普林斯顿大学、宾夕法尼亚大学等美国名校。
Coursera与另外1达成合作协议。其课程报名学生突破了150万,来自全球190多个国家和地区,而网站注册学生为68万。注册124门课程。目前新增的大学包括了佐治亚理工学院、杜克大学、华盛顿大学、加州理工学院、莱斯大学、爱丁堡大学、多伦多大学、洛桑联邦理工学院
-
洛桑(瑞士)、约翰·霍普金斯大学公共卫生学院、加州大学旧金山分校、伊利诺伊大学厄巴纳
- 香槟分校以及弗吉尼亚大学。
除了免费课程之外还有一些付费性质的课程,但是也会有相应的课程福利,比如提供运算的服务器之类的。但是费用可能较为高。毕竟是学生嘛,Coursera也是提供了一套完整的助学金申请方案,可以用于助学金申请。
于是乎,就做了一个助学金申请模版
I am very interested in this course. I believe that this ...
手写Promise
初始结构
我们在 New 一个 Promise
里的时候肯定是需要传入参数的,不然这个实例用处不大,而这个参数我们知道是一个函数,而且当我们传入这个函数参数的时候,这个函数参数会被自动执行。
因此我们需要在类的 constructor 里面添加一个参数,这里就用
func
来作为形参,并且执行一下这个参数,接下来需要为这个函数参数传入他自己的参数,也就是
resolve 和 reject,原生的 Promise 里面可以传入
resolve,reject
两个参数,那么我们也得允许手写这边可以传入这两个参数。
class 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 的使用
npm -v
#通过查看版本,看npm是否安装成功
npm install <Module Name>
#使用 npm 命令安装模块
npm install <Module Name> -g
#可以直接在命令行里使用
npm list -g
#查看所有全局安装的模块
npm list vue
#查看某个模块的版本号
npm -g insta ...
关于Git
版本控制
版本控制(Revision
control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
实现跨区域多人协同开发
追踪和记载一个或者多个文件的历史记录
组织和保护你的源代码和文档
统计工作量
并行开发、提高开发效率
跟踪记录整个软件的开发过程
减轻开发人员的负担,节省时间,同时降低人为错误
简单说就是用于管理多人协同开发项目的技术。
没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。
无论是工作还是学习,或者是自己做笔记,都经历过这样一个阶段!我们就迫切需要一个版本控制工具!
常见的版本控制工具
主流的版本控制器有如下这些:
Git
SVN(Subversion)
CVS(Concurrent Versions System)
VSS(Microsoft Visual S ...
关于 this 指向的理解
函数内 this 的指向
这些 this 的指向,是当我们调用函数的时候确定的。
调用方式的不同决定了this 的指向不同一般指向我们的调用者.
1. 普通函数 this 指向window
function fn() {
console.log('普通函数的this' + this);
}
window.fn();
2. 对象的方法 this指向的是对象
o
var o = {
sayHi: function() {
console.log('对象方法的this:' + this);
}
}
o.sayHi();
3.
构造函数 this 指向 ldh 这个实例对象 原型对象里面的this 指向的也是
ldh这个实例对象
function Star() {};
Star.prototype.sing = function() {
}
var ldh = new Star();
4.
绑定事件函数 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 表示:
<student>
<name>孙悟空</name>
<age>18</age>
<gender>男</gender>
</student>
用 JSON 表示:
{"name":"孙悟空","age ...
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 封装了 Ja ...
PC&移动端网页特效
PC 端网页特效
元素偏移量 offset 系列
offset 概述
offset 翻译过来就是偏移量,我们使用 offset
系列相关属性可以动态的得到该元素的位置(偏移)、大小等
获得元素距离带有定位父元素得到位置
获得元素自身的大小(宽度高度)
注意:返回的数值都不带单位
常用属性
offsetTop
offsetLeft
以带有定位的父亲为准
offsetParent
返回带有定位的父亲,否则返回 body
offsetWidth
offsetHeight
元素可视区 client 系列
概述
client 翻译过来就是客户端,我们使用 client
系列的相关属性来获取元素可视区的相关信息。通过client系列的相关属性可以动态的得到该元素的边框大小、元素大小等。
元素滚动 scroll 系列
概述
scroll 翻译过来就是滚动的,我们使用 scroll
系列的相关属性可以动态的得到该元素的大小、滚动距离等
动画函数封装
动画实现原理
通过定时器 ...