Frozen's


  • 首页

  • 标签

  • 分类

  • 归档

资料整理

置顶 | 发表于 2019-09-16 | 更新于: 2020-08-07
  • Process On

    https://www.processon.com/diagrams

  • 百度脑图

    https://naotu.baidu.com/

  • 南瓜书:

    https://datawhalechina.github.io/pumpkin-book/#/

阅读全文 »

参数初始化

发表于 2021-03-14 | 更新于: 2021-03-16 | 分类于 深度学习

神经网络的参数初始化

在有 BN 层之后,网络的梯度弥散问题得到了缓解,但在 BN 层出现之前,缓解神经网络的梯度消失问题都要靠一个恰当的神经网络的初始值。

阅读全文 »

Batch Normalization

发表于 2021-03-13 | 更新于: 2021-03-14 | 分类于 深度学习

Batch Normalization

BN 层是现如今深度网络中比较常用与有效的正则化方法,不仅可以减少梯度消失以及梯度爆炸的问题,还可以加速参数的优化。不过 Batch Normalization 在网络中到底做了什么,而这样做有什么意义呢?

阅读全文 »

Adam

发表于 2021-03-02 | 更新于: 2021-03-13 | 分类于 最优化方法

Adam(Adaptive Moment Estimation)

好久没写博客了,最近研究深度学习,这几天将深度学习以及目标检测方向的一些基础的东西整理下,争取四五月份找个好实习!冲冲冲📣

阅读全文 »

概率图模型(PGM)

发表于 2021-01-02 | 更新于: 2021-01-02 | 分类于 机器学习

概率图模型(Probabilistic Graphical Model)

概率图模型是一种利用 图论 知识来表示某一概率分布的模型。例如这里有一个概率分布

如果事先不知道分布中的各个变量之间的相互依赖关系,那么想要求出这个分布的表达式就很困难了。不过还好,之前了解过关于朴素贝叶斯的相关知识,朴素贝叶斯模型假设各个变量独立,这可以将这个分布解掉:

我们只要根据样本来求出各个 $\hat P(x_i)$ 再连乘就好了。

但各个变量之间相互独立这个假设实在是太强了,这可能让我们求得的分布和真实的分布差很多。如果我们想求一幅图片的分布什么的,朴素贝叶斯肯定是行不通的。而概率图模型是利用图论知识来建立概率分布各个变量间的联系,以此来逼近一个复杂的概率分布。关于图嘛,有有向图有无向图。而有向图和无向图的概率图模型分别对应着 贝叶斯网络(Bayesian Network) 与 马尔可夫网络(Markov Network)。

当然了,概率图网络只是用来描述一个概率分布变量之间的联系,如果将一个概率分布用概率图模型来表示,那么这个模型就有着 条件独立性 的新性质。条件独立性在不同的网络中有着不同的形态,具体就要等接下来的几篇文章来介绍啦。

在介绍概率图模型之前,先来复习几个关于高维概率分布的知识。

当我们已知一个分布 $P(x_1, x_2,\cdots, x_p)$ 时,我们可以求得它的边缘概率 $P(x_i)$ 与条件概率 $P(x_j|x_i)$:

而关于概率分布,我们可以利用链式法则来对其进行分解:

接下来关于贝叶斯网络和马尔可夫网络的知识在接下来几篇奥!

在win10下安装Pytorch-GPU

发表于 2020-10-21 | 更新于: 2020-10-29 | 分类于 深度学习

安装 Anaconda

去 Anaconda 官网 下载最新版本的 Anaconda。

安装的时候记得:Install for 项选 All Users。

把这个添加环境变量的勾也打上。

安装 CUDA

首先要确定自己的设备上有一张 Nvidia 的显卡,并且去 这个网站 的 CUDA-Enabled GeForce and TITAN Products 选项卡下面看看自己的显卡是否支持 CUDA。

接下来去 Pytorch 官网 看一下现在支持到什么版本的 CUDA:

比如现在 Pytorch 最高支持到 CUDA 11.0,那么就可以去 这里 下载相应的包。

下载完了之后安装,一路下一步,直到安装完成。

打开控制面板搜索 环境变量,点击 编辑系统环境变量。

然后点击环境变量,在 系统变量(S) 标签下,左侧 变量 栏找到 Path 字段并双击,添加环境变量:

如果没有带有 CUDA 字样的,就依次添加一下(我安装的是 10.2 版本的):

1
2
3
4
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp

当然你要确定自己的 CUDA 安装位置,顺便可以看一下 Anaconda 的环境变量配置的咋样。

配置完成后可以用控制台测试一下:

1
nvcc -V

安装 cuDNN

在 这里 下载。在下载之前需要有一个Nvidia 的账号。登录之后根据 CUDA 的版本下载相应的 cuDNN:

下载之后解压到 CUDA 的目录之下,覆盖即可:

安装 Pytorch

安装 Pytorch 的过程非常痛苦。

首先专门为 Pytorch 创建一个环境。

打开 Anaconda 控制台,输入

1
conda env list

查看当前都有哪些环境。

1
2
3
4
# conda environments:
#
base * D:\Anaconda3
pytorch D:\Anaconda3\envs\pytorch

我的显示是这样的。星号表示你当前所在的环境。

使用下面的代码创建环境

1
conda create -n [环境名] python=[3.x]

比如,我想创建一个名字叫 pytorch 的环境,python版本就用 3.8 的:

1
conda create -n pytorch python=3.8

创建好了之后就可以激活环境啦!

1
activate [环境名]

激活之后 conda 控制台前面括号里就会变成当前环境的名字。

现在开始在 pytorch 环境下安装 Pytorch 啦!

还是在 conda 控制台,先添加一下清华源:

1
2
3
4
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

然后去 Pytorch 官网 看一下安装代码,直接安装。

但是 pytorch 和 torchvision 这两个文件下载还是很慢,可以在下载这两个文件时按下 Control + C 停止这两个文件的安装,我们用手动安装的方法。

先去 Anaconda3\pkgs 目录下删除 带有 pytorch… 的文件夹和文件,然后看看你之前停止的 pytorch 和 torchvision 的版本号,在 清华镜像 下载相应的两个文件。

然后用 conda 在相应的环境下,用下面的指令安装:

1
conda install --use-local [文件路径.tar.bz2]

比如

1
conda install --use-local C:\Users\Frozen\Desktop\torchvision-0.7.0-py38_cu102.tar.bz2

然后就大功告成!

测试一下!

1
2
3
4
import torch

print(torch.__version__)
print(torch.cuda.is_available())

关于 Jupyter Lab

插件失效

有可能插件不好使还没反应。可能是因为删除插件又重新安装出现的问题。输入

1
jupyter labextension list

会发现插件不仅在安装栏里,还在卸载栏里。

解决方法就是删掉下面这个文件再重启:

1
[conda_root]/envs/[env_name]/share/jupyter/lab/settings/build_config.json

让 Jupyter 运行于指定虚拟环境

安装这个:

1
conda install nb_conda_kernels

然后就可以选了。

更改默认路径

在控制台输入:

1
jupyter-lab --genereate-config

生成 Jupyter 配置文件。可以看到文件的位置,比如像我这样:

1
Writing default config to: C:\Users\Frozen\.jupyter\jupyter_notebook_config.py

找到它,并且查找:

1
# c.NotebookApp.notebook_dir = ''

删除前面的 # + 空格,在引号内输入路径,比如:

1
c.NotebookApp.notebook_dir = 'D:\Project'

最大熵模型

发表于 2020-09-26 | 更新于: 2020-10-29 | 分类于 机器学习

最大熵原理

当你发现了一枚硬币,可能不知道硬币的密度是否均匀,材质如何。但如果有人让你猜测这枚硬币掉在地上时出现正面与反面的概率,你可能毫不犹豫的回答 $\frac 1 2$,可是你知道这看似简单的不能再简单的问题背后隐藏的原理吗?

最大熵原理就可一很清楚的解释这一问题。最大熵原理认为,学习概率模型时,所有的概率分布中,熵最大的模型总是最好的。

阅读全文 »

插值法

发表于 2020-04-28 | 更新于: 2020-10-29 | 分类于 计算方法

插值法

简单来说,插值法是通过已知的离散的数据来推测未知数据的一种方法。

举个例子:我现在有这么一组数据

$x$ $1$ $2$ $3$ $4$
$y$ $3$ $?$ $6$ $7$

在 $x=2$ 时的值缺失了,不见了,被墨水挡上了😢。如何来使用已知的离散数据点来预测 $y$ 呢?或许我们可以用数据健全的四个点来拟合出一个多项式函数 $p(x)$,再将 $x=2$ 代入,求得 $p(2)$,用它来预测缺失值,这样问题就解决啦!有了这条曲线,我们不仅可以来近似的填补空缺,还可以来近似我想知道的任意一个比如 $x = 3.5$ 时的 $y$。

阅读全文 »

雅可比矩阵

发表于 2020-03-27 | 更新于: 2020-04-06 | 分类于 矩阵分析

线性变换

线性变换在这个词在先线代课上听过无数次了,但在接触一些关于线性变换算法的时候,总是很难理解到位,今天看了一会,把自己的理解和心得记在下面啦!

先看一个式子

在一个正常的没有经过变换的向量 $(i, j)^T$ 经过左乘了一个方阵变换成了另一个向量 $(3i, i+2j)^T$。

阅读全文 »

共轭梯度法

发表于 2020-03-26 | 更新于: 2020-05-10 | 分类于 最优化方法

阅读全文 »
12…4
Fangchen Wu

Fangchen Wu

40 日志
9 分类
19 标签
GitHub E-Mail Weibo Twitter
© 2021 Fangchen Wu | 全站字数统计: 65k
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4