神经网络基本概念以及Pytorch实现

1 神经网络

1.1 定义

一个简单的神经网络结构图如下图所示:
神经网络基本概念以及Pytorch实现_第1张图片
神经网络基本概念以及Pytorch实现_第2张图片

2 卷积神经网络

2.1 定义

一个简单的卷积神经网络的结构与全连接层网络的区别:神经网络基本概念以及Pytorch实现_第3张图片

2.2 经过卷积层后特征图尺寸的改变神经网络基本概念以及Pytorch实现_第4张图片

2.3 经过池化层后的特征图尺寸的改变神经网络基本概念以及Pytorch实现_第5张图片

2.4 梯度下降法——用于反向传播神经网络基本概念以及Pytorch实现_第6张图片

2.5 Dropout

当一个网络过于复杂,而训练样本太少,则会导致过拟合,所以,在网络的训练中常常采用dropout结构,即在训练过程中有概率地无效一些神经元。(实际上,在训练网络的迭代过程中,每一个神经元都能学习到相关参数)

3 Python的类

类的三大特性是:继承、封装、多态(作用域)。这是实现深度学习的PyTorch代码的基础

下面简要用代码说明Python的继承的特性:

class Hero():
    # 属性 魔法方法
    def __init__(self, name, life_value, aggressivity, defensive):
        self.name = name
        self.life_value = life_value
        self.aggressivity = aggressivity
        self.defensive = defensive

    # 方法
    def attack(self, enemy):
        enemy.life_value -= self.aggressivity


# 继承(普通)
class Sharm(Hero):
    pass


# 继承(加点自己的东西)
class Zina(Hero):
    def __init__(self, money, name, life_value, aggressivity, defensive):
        Hero.__init__(self, name, life_value, aggressivity, defensive)
        self.money = money


# 实例化
sharm = Sharm("sharm", 4000, 300, 400)
zina = Zina(200, "zina", 4000, 300, 400)

# 运用方法
sharm.attack(zina)
print("sharm的血量还剩:", sharm.life_value)
print("zina的血量还剩:", zina.life_value)

4 深度学习的PyTorch代码实现模板

4.1 模板

import torch


# 官方步骤,约束我们必须这么做
# 当继承了这个,神经网络的主要结构便会继承进来
class ConvNet(torch.nn.module):
    # 搭建卷积层的一些信息
    def __init__(self):
        super(ConvNet, self).__init__()
        pass

    # 动作
    def forward(self):
        pass

4.2 Torch的概念

Torch就是神经网络届的Numpy,Torch能将tentor放在GPU上加速运算,就像Numpy可以嫁给你array放在CPU中加速运算。

4.3 机器学习两类问题

  • 回归问题(Regression):让我的输出能够预测到我想到的值。
  • 分类问题

5 Dataset与Dataloader类神经网络基本概念以及Pytorch实现_第7张图片

你可能感兴趣的:(实验室,pytorch,神经网络,深度学习,python)