序言 工欲善其事必先利其器

序言 工欲善其事必先利其器

目录

  • 系列介绍

    • 前置知识

    • 开发平台

      • 本地配置

      • 服务器端

    • 项目文件参考位置

  • 预备知识介绍

    • 网络结构

    • 数据集结构

系列介绍

目前的打算如下:

第一卷:图像分类网络介绍与实现。

第二卷:语义分割网络介绍与实现。

第三卷:目标检测网络介绍与实现。

第四卷:超分辨网络介绍与实现。

可能后续也会对其他算法也展开复现,不过目前就先从视觉相关的四个方向入手了。本人在深度学习方向也是刚起步不远,如有问题希望大家能及时纠正。同时也希望有更有的有志之士可以互相探讨。

前置知识

在这个系列中,将直接从网络开始复现,所以需要部分前置的知识需要大家自己学习,我在这边进行了一些整理。

  1. 高等数学 【尤其是其中求导与微分等相关知识】

  2. 线性代数

  3. python3的编程相关知识

  4. python3第三方库 numpy

  5. python3 第三方库 opencv

  6. python3 第三方库 paddle2.2以上

从我推荐的列表中大家可以看到,该系列是采用Paddle框架进行的复现,Paddle框架语法与pytorch相近,且在百度飞桨平台有免费的GPU资源可以使用【基本上用不完】。对于一穷二白的我来说再适合不过了。

开发平台

开发方式采用本地调试,服务器运行的方式,这里对双方都进行简单的介绍。

本地配置

CPU: Intel i7

GPU: 无

开发环境: Pycharm2021

深度学习框架: PaddlePaddle2.3.0 【CPU版】

服务器端

百度飞桨Aistudio服务器

显卡:Tesla V100 → TeslaA100

项目文件参考位置

后续参考文件将分别从代码、视频、博客三个方向做分享:

代码托管平台: GitHub、Gitee

视频分享平台: B站

博客分享平台: CSDN、知乎

预备知识介绍

在本节中,将对一些预备知识进行预热,方便后续代码实现时大家可以清晰代码设计思路。该部分代码将在在后续中简要介绍,并随时间推移后,仅作展示不再赘述。

网络结构

首先介绍网络结构的构建。在paddle中,构建网络类继承自nn.Layer,其函数名与方法大致与Pytorch相近,故我在前期学习时,通常会将论文、Pytorch代码相互参考学习,最后通过Paddle构建出来。其中Paddle的网络类主要构成如下所示:

import paddle
import paddle.nn as nn


class Network(nn.Layer):
    def __init__(self, in_channels, out_channels, ...):
        super(BasicBlock, self).__init__()
        """
        具体每层网络的声明,用作forword计算。
        """

    def forward(self, x):
        """
        按照参数传递顺序组合声明的网络类
        """
        return x

数据集结构

该系列数据集将采用ImageNet1K其中的100类作为训练集,作为备用的数据集还有Caltech256。

数据集的构建方式如下:

import paddle
import paddle.io as io


class ClassData(io.Dataset):
    def __init__(self, parameters, num_classes):
        super(ClassData, self).__init__()
        """
        初始化数据及参数,一般用作数据集列表的加载等
        """

    def __getitem__(self, idx):
        """
        idx为图片序号,其值不会大于__len()__的结果。通过__init__生成的列表获取图片
        与标签并经过预处理后输出参与训练
        """
        return image, label

    def __len__(self):
        """
        用作统计数据个数,防止__gititem__超限。
        """
        return None

文章索引

暂无

你可能感兴趣的:(Paddle论文复现,深度学习,人工智能)