打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python中常用的函数、概念及功能
userphoto

2023.10.16 甘肃

关注

前言

我写这篇博客的目的是整理Python中各式各样的函数以及概念,看到了一些好的解释可能会整合到本篇文章中,若有侵权,请联系我删除
持续更新中。。。 3月21日


类(class)

代码的封装,可以实现某特定功能,在“类”外我们可以通过调用类实现此功能。

Ps:一般调用Class时不能传入空参数

构造函数:_ init _()

构造方法__init__用于创建实例对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调用它,用来初始化对象的某些属性。

super().init()

继承父类的init方法

self

Python类(Class)中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。self的作用就是把代码中的函数、对象实例化。
故在创建实例的时候,可以将我们认为必须绑定的属性填写进去,在python中,是通过类中通常都会使用的一个方法,即def init(self,A,B) 方法,在创建实例变量的时候,就把属性A,B绑上去。

与普通的函数相比,在类中定义的函数只有两点不同:

  1. 第一个参数永远是 self ,并且调用时不用传递该参数。
  2. 类中函数相互调用要加 self。
例子:
import torch.nn as nn
import torch.nn.functional as F

class Model(nn.Module): #定义了一个名为Model的类(创建了继承Module的子类Model)
    def __init__(self):
        super().__init__()
        self.conv1 = nn.Conv2d(1, 20, 5)
        self.conv2 = nn.Conv2d(20, 20, 5)

    def forward(self, x):
        x = F.relu(self.conv1(x))
        return F.relu(self.conv2(x))

张量(Tensor)

张量是机器学习程序中的数字容器,本质上就是各种不同维度的数组,我们把张量的维度称为轴(axis),轴的个数称为阶(rank)(也就是俗称的维度)
4阶张量:图像数据
图像数据本身包括高度、宽度,再加上一个颜色深度通道。MNIST数据集中是灰度图像只有一个颜色深度通道;而GRB格式的彩色图像,颜色深度通道的维度为3.
因此,对于图像数据集来说,长、宽、深再加上数据集大小这个维度 ,就形成了4D张量,其形状为(样本、图像高度、图像宽度、颜色深度),如MNIST特征数据集的形状(60000,28,28,1)。

https://blog.csdn.net/sjjsaaaa/article/details/115915942,版权声明:本文为CSDN博主「黎明之道」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sjjsaaaa/article/details/115915942

由于需要处理的数据维数较大,故机器学习中采用批处理的学习方式。

A.to(device)

将A拷贝到device所指定的设备(CPU或者GPU)上进行后续的运算

device = torch.device('cuda' if use_cuda else 'cpu') #存储参数和缓冲区
data, target = data.to(device), target.to(device)

numpy.argmin()

该函数主要用来检索数组中最小值的位置,并返回其下标值;同理argmax()用来检索最大值的位置

python数组、列表等索引值

索引值以 0 为开始,-1 为末尾

model.eval()

在使用model.eval()时就是将模型切换到测试模式,在这里,模型就不会像在训练模式下一样去更新权重。
[注] model.eval()不会影响各层的梯度计算行为,即会和训练模式一样进行梯度计算和存储,只是不进行反向传播。

range()

range()函数是python的内置函数,它能返回一系列连续添加的整数,能够生成一个列表对象。
大多数时常出如今for循环中,在for循环中可做为索引使用。

range(start, stop [,step]) #start 默认为0,start和stop左闭右开;步长默认为1

matplotlib.use('Agg’)

输出多个元素format()

s=len(DFL_loss_history)
a=DFL_loss_history[0]
print('损失函数数组共有{0}个元素,第一行为{1}'.format(s,a))

二维列表的行列互换

def transpose_2(arr):
    return [[arr[i][j] for i in range(len(arr))] for j in range(len(arr[0]))]#len(a)默认为数组 a 行的数量

多曲线绘图

利用matplotlib在一张图上绘制多条曲线,以下为一个实例:

import numpy as np
import matplotlib.pyplot as plt
num = np.arange(40).reshape(10,4)#生成10行4列的数组
plt.rcParams['font.sans-serif'] = ['SimHei']#可以plt绘图过程中中文无法显示的问题
plt_label = 0
for link in range(len(num)):
    plt_label += 1
    plt.plot(num[0],num[link],label = '第'+ str(plt_label) + '条线段')
plt.legend()#显示图例,如果注释改行,即使设置了图例仍然不显示
plt.show()#显示图片,如果注释改行,即使设置了图片仍然不显示

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
建议收藏!27个Python机器学习、深度学习库总结(含大量示例)
PyTorch最佳实践,怎样才能写出一手风格优美的代码
CV中的Attention和Self-Attention
深入浅出卷积神经网络及实现!
YOLOv5-Face | 原理超精细讲解、训练步骤还原、C 边缘部署(就要这么学!!!)
pytorch系列7 -----nn.Sequential讲解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服