0%

在机器学习中为了便于理解,我们经常要绘制各种图形,如:散点图、折线图、柱状图等,matplotlib是一个非常强大的绘图库,今天咱们就来看看如何使用matplotlib绘制各种图形。

阅读全文 »

在机器学习领域,线性回归模型以其简洁性而著称,它通过一条直线来拟合数据点,如下面的图表所示:

上面这张图还可以用下面的数学公式表示:

[ y = \mathbf{w}^T \cdot \mathbf{x} + b ]

其中 ( \mathbf{w} ) 表示权重向量,( b ) 是偏置项。

线性回归广泛用于预测连续数值,如房价、气温、销售额等。此外,通过引入激活函数,线性回归模型也能够解决二元分类问题。激活函数,如sigmoid函数,可以将线性回归的输出转换为概率值,非常适合用来处理分类问题。

例如,判断一张图像中是否包含猫,这是一个典型的二元分类问题。为了将线性回归应用于二元分类,我们需要执行一个关键步骤:将线性回归的输出映射到区间 [0,1] 内。在这个映射中,( y=1 ) 表示图像中存在猫,而 ( y=0 ) 表示没有猫。这将问题转化为一个概率估计问题,可以表示为 ( \hat{y} = P(y=1 \mid \mathbf{x}) )。

实现这种映射的关键是一个数学函数:sigmoid函数 ( \sigma(f) ),其定义为:

[ \sigma(f) = \frac{1}{1 + e^{-f}} ]

在这个函数中,( e ) 是自然对数的底数,( f ) 是线性回归的输出值。当 ( f ) 是一个非常大的正数时,( e^{-f} ) 趋近于 0,导致 ( \sigma(f) ) 的值接近于 1;反之,如果 ( f ) 是一个非常大的负数,( e^{-f} ) 会变得非常大,使得 ( \sigma(f) ) 的值接近于 0。这种函数的图形如下所示:

推而广之,通过将多个激活函数与线性回归模型结合,我们可以得到一个多层感知机(Multilayer Perceptron, MLP),它能够解决更为复杂的非线性问题,如图像分类、物体检测、语音识别等。

我们通常会遇到想让ncnn加载tensorflow、pytorch训练的深度学习模型,但实际上,ncnn是无法直接加载tensorflow或者pytorch模型的

但我们可以通过一种变通的手段让ncnn加载它们,方法就是先将tensorflow、pytorch训练的模型转成通用深度学习模型onnx,然后再利用ncnn工具onnx2ncnn将onnx格式的模型转成ncnn模型。

下面我们以keras训练的模型(.keras)为例,向你详细介绍一下具体的操作步骤。

阅读全文 »

学习深度学习GPU是必不可少的,我们有很多方法可以获得GPU资源,如自己攒一台具有单独显卡的计算机、花钱在各种云服务商处租一些GPU服务等。

当然,我们有时候还可以白嫖一些GPU资源。下面我就简要介绍几个我认为不错的免费GPU资源。

阅读全文 »

今天我们来介绍如何使用keras训练的模型识别手写字。

其完整的过程分为以下几个步骤:

  • 获取训练数据集,构建模型并进行训练
  • 保存模型和权重
  • 加载模型和权重
  • 对用户输入的手写字图片进行预处理
  • 对手写字进行识别

下面我们就按照上面的步骤一步步操作吧。

阅读全文 »

学习深度学习的方法有很多,其中可视化是一个非常重要的方法。今天我就来简要的介绍一下如何对keras模型进行可视化。

通过tensorboard可视化

阅读全文 »

我们都知道VSCode是最近几年特别流程的一款编辑器,尤其是当你做深度学习开发时,更可以大大提高我们的工作效率。但如果我们所搭建的深度开发环境是在服务器上或是在Docker中,是否还可以使用VSCode呢?

带着这个问题我在网上找了大半天,终于发现几种可行性的方案,记录在这里希望可以帮助到你。

阅读全文 »

本文介绍一下如何在WSL2下安装Docker。

在WSL2下安装Docker,首先你需要将WSL2安装好,然后再安装Docker Desktop。

阅读全文 »

Docker现在应用的越来越广泛,不会使用Docker的研发人员估计很难适应未来的变化了。今天我们就简要的了解一下Docker及其使用。

Docker架构

如上图所示,Docker遵循客户端-服务器模型,包括 Docker ClientDocker 守护程序Docker ImageDocker ContainerDocker Registry 等主要组件。

阅读全文 »

我们在转码时,为了提高转码效率,通常我们都会使用nvenc来转码。今天我们就来介绍如何编译带nvenc的ffmpeg。

阅读全文 »