python-机器学习相关补充知识

1.lambda函数

是Python中的一种匿名函数,它可以在不定义函数名称的情况下快速定义一个简单的函数。
Lambda函数通常用于需要一个函数,但是只需要使用一次的情况,例如在函数参数中传递函数。

语法

lambda 参数: 返回值
#参数可以有多个
#返回值,也称函数体用一行表达式进行表示

eg1:计算表达式或多项式的结果

#lambda表达式

n = lambda x:x/2
print(n(100))  #50

m = lambda x,y:(x+y)*100
print(m(2,1))   #300

2.随机种子

概念

Python随机种子是一个整数,使用它可以控制随机数生成器的行为。随机种子在计算机科学中被广泛使用,其主要作用是保证随机数的可重复性,以便在开发和测试过程中能够得到一致的结果。

  • 通过设置随机种子可以影响 random 模块
  • 通过指定相同的随机种子,可以确保每次程序运行时生成的随机数序列相同,从而提高程序的可重复性和可测试性。

用途

在机器学习和深度学习中,随机种子常常用于控制数据集的划分、参数初始化、样本采样等过程,以确保实验结果的可重复性和可比性。

3.张量

张量概念

一种多维数组结构,可以看作是一种更高维度的数组,具有多个维度和形状,其中每个元素都可以是任意数据类型,例如浮点型、整型、字符型等。


PyTorch、TensorFlow等深度学习框架中使用的一种多维数组结构;

  • torch.Tensor

张量的创建

import torch
import numpy as np


print("从列表创建张量")
x = torch.Tensor([[1, 2, 3], [4, 5, 6]])
print(x)

print("从数组创建张量")
y = torch.Tensor(np.array([[1, 2], [3, 4]]))
print(y)

print("随机初始化张量")
z = torch.randn((3, 4))
print(z)

print("全0或全1初始化张量")
a = torch.zeros((2, 3))
b = torch.ones((2, 3))
print(a)
print(b)

在这里插入图片描述
张量的应用

  • 图像分类
    输入图像可以表示为一个形状为 (H, W, C) 的张量,其中 H 表示图像高度, W 表示图像宽度, C 表示图像通道数。通过将图像张量输入到卷积神经网络(CNN)中进行训练,可以实现对图像的自动分类。
  • 自然语言处理
    输入文本可以表示为一个形状为 (L, D) 的张量,其中 L 表示文本长度, D 表示每个单词的词向量维度。通过将文本张量输入到循环神经网络(RNN)中进行训练,可以实现对文本的自动分类、翻译和生成等任务。
  • 目标检测
    输入图像可以表示为一个形状为 (H, W, C) 的张量,其中 H 表示图像高度, W 表示图像宽度, C 表示图像通道数。通过在图像张量上应用物体检测算法(如Faster R-CNN、YOLO等),可以实现对图像中物体的自动检测和定位。
  • 强化学习
    在强化学习中,智能体(agent)的状态可以表示为一个形状为 (N, D) 的张量,其中 N 表示状态数, D 表示状态向量的维度。通过将状态张量输入到神经网络中进行训练,可以实现智能体在环境中进行决策和行动选择,并逐步优化策略以获得更好的奖励。
  • 生成式模型
    在生成式模型中,输入可以是一个随机噪声向量,可以表示为一个形状为 (N, D) 的张量,其中 N 表示样本数, D 表示噪声向量的维度。通过将噪声张量输入到生成器网络中,可以生成具有特定属性或特征的新样本,如GAN(生成式对抗网络)等模型。

张量和数组的区别

张量(Tensor)和数组(Array)是两个概念密切相关的数据结构;

  • 张量和数组都是多维数组结构,可以存储和处理多维数据。
  • 张量和数组都支持基本的数学运算,例如加减乘除、矩阵乘法、转置和切片等。
  • 张量和数组都可以表示为一维向量、二维矩阵以及高维张量的形式。

区别:

  • 张量和数组的数据类型不同。数组通常是基于数值类型(如int、float等)定义的,而张量则可以是任意数据类型,例如字符型、布尔型、整数型、浮点型等。
  • 张量和数组的底层实现不同。数组通常使用连续的内存空间来存储数据,而张量则可以使用不同的存储策略,例如稀疏张量、压缩张量等。
  • 张量和数组在一些高级操作上的支持程度不同。例如张量可以支持自动求导和GPU加速等功能,而数组则相对简单。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值