开源许可协议
开源许可协议有很多,常见的如:MIT, BSD, Apache, LGPL, GPL,它们之间的关系可以参见阮一峰的如何选择开源许可证?
该图是乌克兰程序员 Paul Bagwell 制作的分析图,阮一峰将其转化为中文版。此外,也可以参考GitHub提供的网站选择一个开源软件协议,英文版有Choose an open source license获取更多信息。下面对某些开源许可协议(证)进行介绍。
没有License没有 Licence 默认是被版权保护。想让大家使用,就需要选择一个合适的开源许可协议。
MITMIT 是最宽泛、最自由,没有任何限制。可以售卖、可以使用作者名促销等。
BSD相对自由,与 Apache 差不多,教 MIT 严格一些,不允许使用作者名促销,需要保护版权。
GPL最严格,基于 GPL 协议的代码而开发的代码,以及修改的代码,都必须遵守 GPL 协议发布。GPL 也包含不同的版本,对权力进行适当的放开,其中 GPL v3 是最严格的、最激进的,它也是 GPL 之父 Richard Stallman 不断在宣传和推进的开源许可协议。
GUNGNU 是 Le ...
有理函数的不定积分
有理函数的不定积分有理函数是指由两个多项式函数的商所表示的函数,其一般形式为
$$R(x) = \frac{P(x)}{Q(x)} = \frac{\alpha_0 x^n + \alpha_1 x^{n-1} + \cdots + \alpha_n}{\beta_0 x^m + \beta_1 x^{m-1} + \cdots + \beta_m},$$其中$n,m$为非负整数,$\alpha_0, \alpha_1,\cdots, \alpha_n$与$\beta_0,\beta_1, \cdots, \beta_m$都是常数,且$\alpha_0 \neq 0, \beta_0 \neq 0$.若$m > n$,则称它为真分式;若$m \leq n$,则称它为假分式。由多项式的除法可知,假分式总能化为一个多项式与一个真分式之和。多项式的不定积分容易求得,只需要关注真分式的不定积分。
根据代数知识,有理真分式必定可以表示成若干个部分分式之和(称为部分分式分解)。因而问题归结为求那些部分分式的不定积分。为此,先把如何分解部分分式的方法简述如下:
第一步 对 ...
LaTeX 数学符号
$\LaTeX$ 数学符号常用基本 $\LaTeX$ 书写
幂和下脚标1$x_1$ \quad $x^2$ \quad $e^{-\alpha x}$ \quad $x^3_{ij}$ \quad $e^{x^3}$ \neq $e^{3x}$
$$x_1 \quad x^2 \quad e^{-\alpha x} \quad x^3_{ij} \quad e^{x^3} \neq e^{3x}$$
开方1$\sqrt{x}$ \quad $\sqrt{x^2 + y^2}$ \qquad $\sqrt[3]{x}$ \quad $\surd[x^3 + y^3]$
$$\sqrt{x} \quad \sqrt{x^2 + y^2} \qquad \sqrt[3]{x} \quad \surd[x^3 + y^3]$$
上下水平线1$\overline{x + y}$ \qquad $\underline{x - ...
Centos 修改时区
Centos修改系统显示时间可以通过修改时区来做。常用的时区一般包含CST, UTC, GMT.
时区介绍CST:China Standard Time,即中国标准时间,又称北京时间。是我中国大陆的标准时间,比世界协调时快八小时(即UTC+8),与香港、澳门、台湾、马来西亚、新加坡等地的标准时间相同。
UTC:Coordinated Universal Time,即协调世界时。是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林威治标准时间,UTC + 8小时 = CST。协调世界时是最接近格林威治标准时间(GMT)的几个替代时间系统之一。对于大多数用途来说,UTC时间被认为能与GMT时间互换,但GMT时间已不再被科学界所确定。
GMT:Greenwich Mean Time,即格林威治平均时间。是指位于英国伦敦郊区的皇家格林威治天文台当地的平太阳时,因为本初子午线被定义为通过那里的经线。
查看时区下面介绍如何修改系统时间,假设Centos系统采用UTC时区,可以通过如下命令查看
1date
修改时区我们想要修改为北京时间,方法如下
使用timedate ...
一个脚本启动、关闭和查看大数据处理平台集群Zookeeper、Kafka等
对于分布式大数据处理框架,如Zookeeper、Kafka、Storm等,在启动、关闭、查看状态时都需要一个一个的去各节点机器上查看,效率非常低,这里给出一个脚本,用于管理大数据处理框架如Zookeeper集群,具体脚本代码参看我的GitHub网站:https://github.com/xujinzh/archive/tree/master/big-data
命令使用说明,这里假设Zookeeper集群部署在box0, box1, box2上,我们在本地可以通过ssh连接这些集群服务器。在本地运行shell脚本。注意,这里的脚本需要你修改为自己的启动参数,如用户名,启动初始位置等。可以通过vim zks-daemons.sh来修改相应内容。
12345678910111213(base) jinzhongxu@jinzhongxu-PowerEdge-R740:~/Documents/daemons$ ./zks-daemons.sh statusZooKeeper JMX enabled by defaultUsing config: /home/jinzhongxu/zook ...
Linux 关机和重启命令
重新启动 Linux 系统和关闭 Linux 系统推荐使用 shutdown 命令。下面分别介绍 Linxu 系统的重启和关机命令:shutdown, reboot, init, systemctl, halt, poweroff 等。本篇所有命令以 root 运行,普通用户需要使用 sudo.
shutdown该命令需要 root 权限,且功能比较强大,像 reboot,halt 等都是基于该命令。
shutdown 命令比较安全,使用该命令后,它会在系统关闭之前给系统上的所有登录用户一条警告。同时该命令搭配不同的参数,可以设置不同的重启操作。
该命令的一般格式: shutdown [选项] [时间] [警告信息]
选项的含义:
k: 并不真正关机而只是发出警告信息给所有用户
r: 关机后立即重新启动
h: 关机后不重新启动
f: 快速关机重启动时跳过fsck
n: 快速关机不经过init 程序
c: 取消一个已经运行的shutdown
rebootreboot 命令比较粗暴,重启系统时直接删除所有进程,不是平稳安全的关闭它们。但简单粗暴的它可以快速关闭系统。容易造成其他用 ...
机器学习神经网络模型loss和accuracy的理解
训练机器学习模型时,特别是使用 TensorFlow 进行训练神经网络模型时,在每一步(epoch,表示一个周期,即训练完所有训练集样本。假设训练集包含100000个样本,而batch_size设置为100,即一次输入100个训练样本,那么需要1000次迭代后就完成一次epoch,将所有训练样本训练一次)总是会出现loss是多少,accuracy是多少。
loss越低,模型越好(当模型没有过拟合时)。它不是一个百分比,而是一次epoch中训练集样本或验证集样本所有error的和。比如,在神经网络中,loss值一般是 negative log likelihood(分类问题)和 residual sum of squares(回归问题)。因此,模型的训练是通过减少loss为目的的,即最小化loss function,如神经网络中采用反向传播对模型参数求导。loss隐含着每一次优化迭代后模型表现的好坏。
accuracy是当模型的参数学习得到并固定后来计算得到的。通过比较真实标签和预测标签来确定的0-1损失。它是一个百分比值。
优化训练的目标是loss值,而不是accuracy,因为l ...
Conda 配置虚拟环境、jupyter kernel 以及环境迁移
Miniconda 是一个 python 简约发行版,集成了 python、pip、conda 等,利用 conda 进行 python 软件包管理非常方便。另外,也可以为特定的项目创建特定的运行环境,再结合 jupyter 等能够非常方便切换各种独立环境。下面给出如何利用 conda 创建特定环境、配置不同 jupyter kernel 以及环境迁移。
安装 Miniconda从官网下载 miniconda 并安装
1234# 安装最新版 minicondawget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shchmod +x Miniconda3*./Miniconda3*
其他历史版本请从 miniconda archive 官网下载。
安装特定环境conda update创建新的环境,命名为 toplayer,安装 python 版本 3.8
12345678# 如果安装 miniconda 时没有初始化,需要初始化,重新登陆conda init# 如果不想 conda 环境在启 ...
换元积分和分部积分
这节讲求不定积分的方法,包括换元积分法和分部积分法。其中换元积分法是利用复合函数求导法得到,分部积分法是利用乘积求导法得到。
换元积分定理 8.4   (换元积分法)  设函数$f(x)$在区间$I$上有定义,$\varphi(t)$在区间$J$上可导,且$\varphi(J) \subset I$.
如果不定积分$\int f(x) \mathrm{d}x = F(x) + C$在$I$上存在,则不定积分$\int f(\varphi(t)) \varphi^{\prime}(t) \mathrm{d}t$在$J$上也存在,且$$\int f(\varphi(t)) \varphi^{\prime}(t) \mathrm{d}t = F(\varphi(t)) + C.$$
如果$x = \varphi(t)$在$J$上存在反函数$t = \varphi^{-1}(x), \ x \in I$,且不定积分$\int f(x) \mathrm{d}x$在$I$上存在,则当不定积分$\int f(\var ...
不定积分
积分法属于微分法的逆运算,就像减法是加法的逆运算,除法是乘法的逆运算一样。
原函数与不定积分定义 1   设函数$f$与$F$在区间$I$上都有定义。若$$F^{\prime}(x) = f(x), \ x \in I,$$则称$F$为$f$在区间$I$上的一个原函数。
这一节解决满足什么样条件的函数存在原函数。
定理 8.1   若函数$f$在区间$I$上连续,则$f$在$I$上存在原函数$F$,即$F^{\prime} = f(x), \ x \in I$.
初等函数在定义域内是连续函数,因此,初等函数都存在原函数。注意,初等函数的原函数不一定还是初等函数。
定理 8.2   设$F$是$f$在区间$I$上的一个原函数,则
$F + C$ 也是$f$在$I$上的原函数,其中$C$为任意常量函数;
$f$在$I$上的任意两个原函数之间,只可能相差一个常数。
定义 2   函数$f$在区间$I$上的全体原函数称为$f$在$I$上的不定积分,记作$$\int f(x) \mathrm{d} ...
上极限和下极限
上极限和下极限是针对数列而言的,需谨慎考虑数集或点集。
定义 1   若在数$a$的任一领域内含有数列$\{x_n\}$的无限多个项,则称$a$为数列$\{x_n\}$的一个聚点。
当不区分实数与数轴上的点的情况下,点列的聚点等同于数列的聚点,也称为极限点。需要说明的是,点集和数集的聚点不能叫作极限点。
点列的聚点就是其收敛子列的极限。
定理 7.4   有界点列(数列)$\{x_n\}$至少有一个聚点,且存在最大聚点和最小聚点。
定义 2   有界数列(点列)$\{x_n\}$的最大聚点$\overline{A}$与最小聚点$\underline{A}$分别称为$\{x_n\}$的上极限与下极限,记作$$\overline{A} = \varlimsup_{n \to \infty}x_n, \quad \underline{A} = \varliminf_{n \to \infty}x_n.$$这里需要注意下极限的书写方法。
定理 7.5   对任何有界数列$\{x_n\}$有$$\va ...