在 markdown 中书写矩阵
使用 markdown 写文章非常方便,简洁。对于数学符号书写也是非常的高效,本篇主要介绍如何在 markdown 中书写矩阵。
不带括号的矩阵代码之后的 tag 实现了后标
1234567$$\begin{matrix} 1 & 2 & 3 \\\\ 4 & 5 & 6 \\\\ 7 & 8 & 9\end{matrix} \tag{1}$$
效果如下:$$\begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9\end{matrix} \tag{1}$$
带括号 { } 的矩阵1234567$$\begin{Bmatrix} 1 & 2 & 3 \\\\ 4 & 5 & 6 \\\\ 7 & 8 & 9\end{Bmatrix} \tag ...
几个聚类算法
本节介绍一些典型的聚类算法,如 K-Means,DBSCAN,谱聚类,层次聚类,optics,birch 等。聚类就是对大量未知标注的数据,按照内在相似性将其划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小。通过计算每个类的代表点可以获得整个数据集的少量代表点,从而获得整个数据集的结构、形状信息。聚类算法通常处理无标签的数据集,因此常使用相似度或距离来处理。有衡量两个点(向量)之间的距离的,有衡量两个子集合之间的距离的,也有衡量点到子集合之间距离的。
首先先给出一个图,来直观看一下各个聚类算法的效果图。
数学上,什么是距离?非空集合 $X$ 上的度量为一个函数(称之为“距离函数”或简称为“距离”)$$d: X \times X \to \mathbb{R}$$这里的 $\mathbb{R}$ 是实数集合,且对于所有 $X$ 内的 $x, y, z$,均满足如下条件:
非负性,或分离公理$$d(x, y) \geq 0$$
同一性,或同时公理$$d(x,y) = 0 \Longleftrightarrow x = y$$
对称性$$d(x, ...
使用 filebrowser 和 Nginx 在 VPS 搭建云盘
个人云盘能够方便存储个人文档,特别是没有上传下载速度限制,可以灵活扩展容量,具有更好的私密性。当具有远程服务器(如VPS)时,可以使用 filebrowser 搭建个人云盘。结合 Nginx 实现个性化网页快速访问。下面分别介绍如何在远程服务器上安装 Nginx, filebrowser, 以及他们的配置。本篇以 Debian 10 为例,Ubuntu 系统类似, CentOS 系统需要切换相应命令,但一般是将 apt 更改为 yum.
安装 Nginx12sudo apt updatesudo apt install nginx
安装 filebrowser1curl -fsSL https://filebrowser.org/get.sh | bash
配置 filebrowser1234567891011121314# 创建配置数据库filebrowser -d .filebrowser.db config init# 设置监听地址filebrowser -d .filebrowser.db config set --address 0.0.0.0# 设置监听端口,需要打 ...
利用 nginx 反向代理为 jupyterlab 配置二级网址页面
当服务器配置好 Python, Jupyterlab 后,访问总是通过 8888 端口,出于某些原因,想要为其配置二级页面,这样当想要更改端口时只需要修改一下配置,而不需要再次记忆到底是打开了哪个端口,只需要记住二级页面 web 地址就可以。本篇不介绍如何配置 Jupyterlab,而是假设已经配置好了 Jupyterlab,且申请了域名,直接说如何通过 nginx 配置 Jupyterlab.
安装 nginx12345sudo apt updatesudo apt install nginxsudo systemctl status nginx.servicesudo systemctl start nginx.servicesudo systemctl enable nginx.service
配置 Jupyterlab12345678910# 生成 jupyterlab 配置文件jupyter notebook --generate-config# 修改配置vim .jupyter/jupyter_notebook_config.py# 修改如下内容c.NotebookA ...
TensorFlow 分布式简单介绍
TensorFlow 能够方便的进行深度学习实践,特别是拥有多GPU的服务器或拥有多台GPU服务器时,如何使用 TensorFlow 进行快速训练,节约宝贵时间呢,下面介绍 TensorFlow 给出的分布式训练方法。
单台服务器多GPU情况下对于单台服务器下有多个GPU,TensorFlow 给出了镜像分布式策略 tensorflow.distribute.MirroredStrategy ,具体的使用是只需要实例化一个 MirroredStrategy 策略 (strategy = tensorflow.distribute.MirroredStrategy()),并把模型构建代码放置在 strategy.scope() 下就可以。
注意,在该策略下,可以指定参与计算的GPU,方法如下:
12# 指定计算的GPU为0,1strategy = tensorflow.distribute.MirroredStrategy(devices=["/gpu:0", "/gpu:1"])
使用该策略进行模型 MobileNetV2 训练 ...
docker 简单介绍
docker 容器技术使得开发测试非常方便,自 2013 年发布至今,一直广受瞩目。软件开发最大的麻烦事之一,就是环境配置。虚拟机虽然能够解决上面问题,但是有如下缺点:1.资源占用多,2.冗余步骤多,3. 启动慢;由于虚拟机存在这些缺点,Linux 发展出了另一种虚拟化技术:Linux 容器(Linux Containers,缩写为 LXC)。Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。 或者说,在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。由于容器是进程级别的,相比虚拟机有很多优势。1. 启动快, 2, 资源占用少,3. 体积小. 总之,容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。 它是目前最流行的 Linux 容器解决方案。下面介绍2020年08月以后,如何安装使用 docker,本篇以 Windows 10 wsl 2 Ubuntu-20.04 为例。
Docker 的主要用途,目前有三大类: ...
深度学习中不同的卷积操作
本篇参考An Introduction to different Types of Convolutions in Deep Learning 介绍一下深度学习中不同的卷积操作。
卷积(Convolutions)常规卷积操作如下动图所示,下方(浅蓝色矩形)为输入图像或特征图(feature map),阴影矩形($3 \times 3$) 为卷积核,上方为输出的特征图。下方虚线边缘矩形为填充,为了在特定卷积核大小和步长下,得到合适的特征图。
这里需要先介绍几个概念。
卷积核(kernel)卷积核(卷积核包含至少一个 filter,有时也称 filter 为卷积核)中每个 filter 的大小决定了卷积操作的感受野。如上图所示,卷积核(也是filter,这里输出是单通道)是移动的阴影部分,大小为3,即 $3 \times 3$ 像素。对于输入图像,如果是RGB三通道,那么 filter 也应该是三通道的。如果想输出多通道,可设置多个 filter。即 filter 的通道数和输入图像一样,输出通道由卷积核的个数(filter 的个数)决定。
卷积核的大小一般设置成奇数,如 $1 \t ...
由平行截面面积求体积
本节讲通过定积分求解三维空间中立体的体积。
假设 $\Omega$ 为三维空间中的一个立体,它夹在垂直于 $x$ 轴的两平面 $x = a$ 与 $x = b$ 之间,这里 $a <b$. 若在任意一点 $x \in [a, b]$ 处作垂直于 $x$ 轴的平面,它截得 $\Omega$ 的截面面积显然是 $x$ 的函数,记为 $A(x), x \in [a, b]$,并称之为 $\Omega$ 的截面面积函数。假设截面面积函数 $A(x)$ 是 $[a, b]$ 上的一个连续函数,且把 $\Omega$ 的上述平行截面投影到某一垂直于 $x$ 轴的平面上,它们永远是一个含在另一个里面。对 $[a, b]$ 作分割$$T: a = x_0 < x_1 < \cdots < x_n = b.$$过各个分点作垂直于 $x$ 轴的平面 $x = x_i, i = 1, 2, \cdots, n$,它们把 $\Omega$ 切割成 $n$ 个薄片 $\Omega_i, i = 1, 2, \cdo ...
把本地代码发布到 GitHub 上
本地写好的代码如何发布到 GitHub 上呢?这里给出一个方法。
在 GitHub 上创建一个新的仓库
填写自己喜欢的仓库名
填写自己需要的仓库介绍,简短介绍仓库
选择初始化仓库
最好初始化 README file
点选 .gitignore
选择自己需要的代码版权协议
克隆仓库到本地最好为 GitHub 添加 SSH 认证,这样在提交修改的代码时不需要重复输入用户名和密码,方法参考我的另一篇博文 使用SSH连接GitHub
克隆代码方法如下(这里以 SSH 为例)
1git clone git@github.com:xujinzh/CSK.git
把本地代码放到克隆的文件夹下如我这里本地开发的代码是
1cf-csk
经过上面克隆后,代码放在
1CSK
拷贝 cf-csk 文件到 CSK 里
1cp -r cf-csk/* CSK/
提交代码到 GitHub一般需要完善 README.md 文件以便更好的介绍该仓库,修改后,进行提交
1234git statusgit add .git commit -m "add csk tackers"git p ...
利用定积分求平面图形的面积
由定积分的几何意义我们知道,连续曲线 $y = f(x) (\geq 0)$ 在区间 $[a, b]$ 上与 $x$ 轴所围曲边梯形的面积为$$A = \int_a^b f(x) \mathrm{d}x = \int_a^b y \mathrm{d}x.$$
负面积如果 $f(x)$ 在 $[a, b]$ 上不都是非负的,则所围图形的面积为$$A = \int_a^b |f(x)| \mathrm{d}x = \int_a^b |y| \mathrm{d}x.$$一般地,由上、下两条连续曲线 $y = f_2(x)$ 与 $y = f_1(x)$ 在区间 $[a, b]$ 上所围的平面图形面积计算公式为$$A = \int_a^b [f_2(x) - f_1(x)] \mathrm{d}x.$$同样 $x = g_2(y)$ 和 $x = g_1(y)$ 在区间 $[\alpha, \beta]$ 上所围面积,计算公式如下$$A = \int_{\alpha}^{\beta ...
各类期刊的区别
在学术界各类期刊纷繁复杂,眼花缭乱,选择合适的期刊,对投稿将是有利无弊的。下面分别给出 journal, transactions, magazine, proceedings, acta, bulletin, letter, communication, annals, archives, review, current opinion, advance, trends, progress, frontiers 等的区别介绍,方便选择合适的类型投稿。
journal 期刊Journal 本意为日记,个人经验和反思的记录,引申为 A periodical presenting articles on a particular subject. 学报最典型的叫法, 刊登关于某特殊主题的文章的期刊。
要求有很大的创新点,比较详细的公式推导。因 Journal 面向的读者较广泛,因此发表在其上的文章需要对背景知识有更加全面的介绍。
如:IMA Journal of Applied Mathematics
transactions 汇刊Transactions 本意为商业交易和谈判,引申为 ...