转载自https://git-scm.com/book/zh/v2/%e8%b5%b7%e6%ad%a5-%e5%85%b3%e4%ba%8e%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6。
版本控制(VCS,version control system)本地版本控制比较流行的一种是RCS,在硬盘上保存补丁集,通过应用所有的补丁,可以重新计算出各个版本的文件内容。
集中化版本控制系统集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。这已经成为了版本控制的标准做法。
每个人都可以在一定程度上看到项目中的其他人正在做些什么。 而管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。
但是缺点在于,如果中央服务器出现损坏或者宕机,那么所有使用者在这段时间都无法工作甚至使其此前的所有版本记录。
分布式版本控制系统分布式版本控制系统 ...
本文参考莫烦python-强化学习。
基本概念一种对强化学习的直观理解就是通过不断地尝试,从实践中学习,最终找到某种规律,得到一个训练后的agent。从实践中学习需要一个老师,这个老师会根据agent的行为进行打分,agent的训练过程实际上就是记住了各种行为对应的打分。
监督学习中使用的数据是同时包含数据和正确标签的,而强化学习可以认为老师给行为打的分数就是某种标签。
强化学习分类model-free和model-based在model-free的方法中,都是直接从环境中得到反馈然后学习,比如Q Learning,Sarsa,Policy Gradients。而model-based则增加了一个程序,为真实世界增加了建模模型来进行模拟,这种方法可以模拟一些真实场景中不存在的情况,并且这种训练出来的RL模型具有一定想象力,可以预判接下来要发生的所有情况来进行行为选择。
基于概率和基于价值基于概率的模型可以通过感官分析下一步要采取的各种动作的概率,然后根据概率采取行动,比如Policy Gradients。而基于价值的模型则是会直接选择价值最高的动作,比如Q Learning,Sarsa ...
对多级缓存的认识多种miss:
cold miss
conflict miss
capacity miss
多种并行思路在本次课程中,除开上一次课程介绍的超标量(指令级别并行),又介绍了多种并行处理器思路来提升吞吐量(throughput),考虑到
并行执行
访问存储器的延迟(latency)
超标量(super scalar)对于同一个程序,可以同时抓取预先编译好的多个可并行指令进行执行。
程序中的并行是由硬件自动发现的。
多核处理器在还没出现多核处理器的时候,人们设计CPU往往致力于增加更多的模块来让单条指令执行地更快。
但是通过删去这些额外的模块,实际上可以实现多个核的处理器(单核的性能比原来要差)。
这样通过在程序中定义多个线程,就可以比较充分地利用两个核的性能。程序示意图如下所示:
现代多核处理器的例子:
单指令多数据流(SIMD)single instruction, multiple data。
通过引入更多的ALU(计算单元),使得可以在同一时间对多个数据进行相同的运算操作。
如上架构可以执行如下的数据并行程序:
【注意上述第二个程序既可以 ...
课程核心主题【课程前置:计算机组成相关课程】
设计并编写真的能够加速的并行程序并行思维:
将工作分解为多个块,使得这些块可以安全地并行执行
将每块工作分配给处理器
适当地规划不同处理器之间的交流和同步问题,保证这些问题不会限制加速比
对上述并行思维各项任务的抽象(架构):使用现有并行编程语言进行编程
并行计算机硬件的实现:并行计算机如何工作可以高效实现程序抽象的架构:
实现的性能特征
设计的trade-off:性能,便利,能耗
为什么需要了解硬件:
计算机的设计架构对于程序编写十分重要
效率和性能十分重要
关注效率快速并不意味着高效率!
使用一个具有10个处理器的计算机,但是仅仅实现了2倍的加速比,这显然是不行的。
基础概念程序电脑程序是一系列需要执行的指令。
指令指令是处理器需要处理的操作。执行指令实际上修改了电脑的状态,所谓状态就是指存储在电脑中的数据,这些数据处于寄存器或者存储器中。
指令级别并行instruction level parallelism(ILP):构建
寄存器-缓存-存储器多级结构
三个流派
行为主义:基于控制论,构建感知-动作型控制系统,类似于小脑(强化学习)
符号主义:基于符号逻辑的方法,用逻辑表示知识和求解方法
连接主义:基于大脑中神经元细胞连接的计算模型,用人工神经网络来拟合智能行为
tips:通过核心例子或观点将文章内容在introduction中串联起来,保证审稿人在前期就可以很快理解文章内容。
本文参考💻【Linux】Vim 入门笔记,仅供自己查阅使用
基本概念模式vim编辑器是一种多模态编辑器,其允许用户切换不同的模式来进行不同的编辑任务:
normal:最初始的模式,主要用于查询和移动
insert:i
replace:r
visual:v
visual line:shift-v
visual block:ctrl-v
command line::
buffer, window, tab每一个buffer对应一个文件,一个window可以显示一个buffer(多个window可以对应同一个buffer),每一个tab可以打开多个window。
基本操作执行命令:后输入命令
退出vim
:q或:quit:退出当前tab中所在window,直到最后一个window则退出tab
:q!:退出并丢弃已有操作
:wq:保存更改(write)并退出(quit)
ZZ:等价于:wq
保存文件
:w:保存更改
:w <filename>:将当前内容保存到新的文件中
[M]基本移动使用h、j、k、l而不是左下右上的方向键
[M]前进到第一行或最后一行
gg:前往第一行 ...
shell脚本在shell中,空格十分重要。
$ foo=bar %可以执行
$ foo = bar %无法执行
注意单引号和双引号的区别。
$ echo "Value is $foo" %$foo会转变为其对应的变量值
$ echo 'Value is $foo' %$foo不会转换
下面是一个bash脚本的例子mcd.sh(创建以第一个参数为名的文件夹并进入):
mcd() {
ppmkdir -p "$1"
ppcd "$1"
}
其中$0表示脚本自身的名字,$1到$9依次表示各个输入参数,$_是上一个指令的最后一个参数,$?可以获得上一个指令的错误代码,!!可以指代上一条指令。可以通过如下指令来加载新定义的函数:
$ source mcd.sh %脚本中包含的函数会在当前shell中加载
逻辑符号:
$ false || echo "Oops fail" %如果第一条指令出错,则执行第二条指令
$ true && echo "Things went well" %如果第一条指令正确,才会执行第二条指令
$ false ; echo "This will alwa ...
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
\left\{
\begin{matrix}
f(\vec x)=\frac{\sum\vec x}{2}\\
f(\vec x)=\frac{\sum\vec x}{3}
\end{matrix}
\right.Quick StartCreate a new post$ hexo new "My New Post"
More info: Writing
Run server$ hexo server
More info: Server
Generate static files$ hexo generate
More info: Generating
Deploy to remote sites$ ...
shell基本使用如果需要同时输入多个argument,那么如下两种表达是等价的:
$ echo Hello\ World
$ echo "Hello World"
机器有其自身的内置函数,这些内置函数是终端系统可以直接执行的,机器通过环境变量来定位这些内置函数的位置。如下操作可以显示环境变量的位置:
$ echo $PATH
在每次执行一次shell指令时,终端都会在上述路径中搜索是否存在对应的函数。linux系统的namespace(路径的根源)一般只有一个,就是root,但是Windows一般有多个Driver作为路径根源。
显示当前工作路径位置(present working directory):
$ pwd
改变当前工作位置(change directory):
$ cd xxx
$ cd - %回到上一次所在的位置
如果环境变量中缺少你想要执行的指令所在的位置,那么可以在执行命令时直接指定其具体位置。
显示当前所在位置的所有文件(list d):
$ ls
指令一般可以接受flags(开关)或者options(选择),可以指定一些额外的操作信息,可以用如下方式进行查看:
...