【Pytorch-从一团乱麻到入门】:2、Pytorch的初步理解及相关概念准备

一、简单理解使用pytorch进行模型预测时的逻辑规律基本如下:

  1. 输入input,将input转化为张量(tensor)

  2. 设计模型的层

 pytorch中的torch.nn模块包含torch已经准备好的层,方便使用者调用构建神经网络,包括:卷积层、池化层、激活函数层、全连接层等

相关使用方法:

卷积层:输入和卷积核之间的内积运算,是两个实值函数之间的一种数学运算;

池化层:对卷积层得到的特征进行进一步处理(主要是降维),对数据进一步浓缩;

激活函数:非线性数据的线形转化,全连接层需要加相应的激活函数

全连接层:指由一个或者多个神经元组成的层,其所有的输出和该层所有的输入都有连接,每个输入都会影响所有神经元的输出。

只有全连接层组成的网络是全连接神经网络,可用于数据的分类或者回归预测,卷积神经网络和循环神经网络的末端通常由多个全连接层组成。

    3. 对模型中的数据抓取情况进行设计

需要对模型循环次数,每次循环的取样数、选择最终模型的方法进行定义

    4.对最终选择的模型进行验证集验证,包括损失函数、准确性、混淆矩阵图示。

二、一些相关名词的解释:

1.梯度

如果这个斜率越大,就表明其上升趋势越强劲。当这个斜率为0时,就达到了这个函数的“强弩之末”,即达到了极值点。在单变量的实值函数中,梯度可简单理解为只是导数,或者说对于一个线性函数而言,梯度就是曲线在某点的斜率。

2.数据类型(张量类型)

在torch中CPU和GPU张量分别有8中数据类型,torch中默认的类似是32为浮点型,可以通过torch.set_default_tensor_type()函数设置,但是此函数只支持设置浮点型数据类型

3.张量的产生和计算

pytorch提供了进行张量计算的相关命令,例如张量间的合并、格式转换等

此外,list、array、张量之间可以进行相关转化,命令行如下:

1)list 转array:

ndarray=np.array(list)

2)list转tensor

tensort=torch.Tesnsort(list)

3)numpy 转list

list=ndarray.tolist()

4)numpy 转tensort

tensort=torch.from_numpy(ndarray)

5)tensor 转list

list=tensort.numpy().tolist()

6)tensort转numpy

ndarray=tensort.numpy()

###gpu上的tensort不能直接转为numpy,需要先放回到cpu种

ndarray=tensort.cpu().numpy

CPU tensort 和GPU tensort之间的转换

CPU ---> GPU: data.cuda()

GPU ---> CPU: data.cpu()

4.python中类的说明

因为在使用pytroch时会多次应用到“类”的定义,尤其是在进行网络结构定义、常规函数重定义时。

类(Class):用来描述具有相同属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和方法,对象是类的实例。

类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

数据成员:类变量或者实例变量,用于处理类及其实例对象的相关数据。

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫覆盖,也称为方法的重写。

局部变量:定义在方法中的变量,只作用于当前实例的类。

实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。

继承:即一个派生类继承基类的字段和方法。

实例化:创建一个类的实例,类的具体对象

方法:类中定义的函数

对象:通过类定义的数据结构实例,对象包括两个数据成员(类变量和实例变量)和方法。

创建类:

class ClassName:

    ‘类的帮助信息’ #类文档字符串

    class_suite #类体

类的帮助信息可以通过ClassName.__doc__查看。 class_suite 由类成员,方法,数据属性组成。

例子说明🌰:

class Employee:   ###定义一个所有员工的类

    empCount=0  ##类变量,它的值(后面的Employee.empCount) 可以在类的内部和外部类使用Employee.empCount访问)

    

    def __init__(self,name,salary): ###__init__()  方法是一种特殊方法,被称为类的构造函数或者初始化方法,当创建这个类的实例时就会调用该方法

        self.name=name  ##self代表类的实例,self在定义类的方法时时必须有的,虽然在调用时不必传入相应的参数

        self.salary=salary

        Employee.empCount+=1

        

    def displayCount(self):

        print("Tatol Emplyee",Employee.empCount)

    def displayEmployee(self):

        print ("Name : ", self.name,  ", Salary: ", self.salary)

ref:

https://www.runoob.com/python3/python3-class.html

这可能是最简单易懂的机器学习入门(小白必读)_机器学习算法与Python学习-CSDN博客

一文看懂机器学习“3种学习方法+7个实操步骤+15种常见算法” (easyai.tech)

公众号文章:

Pytorch-从一团乱麻到入门:2、Pytorch的初步理解及相关概念准备 (qq.com)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值