深度学习中的python语法笔记总结

解释 torch中的 .clamp(min=0)

在PyTorch中,torch.clamp将张量中的元素限制在指定的范围内。

torch.clamp(min=0)会将张量中的每个元素与0进行比较,并将小于0的元素替换为0。其他大于等于0的元素则保持不变。

clamp函数原理

python 复制代码
def clamp(x, lower, upper):
    if x < lower:
        return lower
    elif x > upper:
        return upper
    else:
        return x

torch.full()

torch.full()是PyTorch库中的一个函数,用于创建一个指定形状的张量,并填充指定的值。

函数的语法如下:

python 复制代码
torch.full(size, fill_value, dtype=None, device=None, requires_grad=False)

参数说明:

size: 表示要创建的张量的形状,可以是一个整数,也可以是一个元组或列表形式的多个整数。

fill_value: 要填充到张量中的值,可以是任意标量值(如整数、浮点数等)。

dtype: 指定所创建张量的数据类型,默认为None,即使用默认的数据类型。

device: 指定所创建张量所在的设备,默认为None,表示使用当前设备。

requires_grad: 指定是否需要对张量进行自动求导,默认为False,即不进行自动求导。

python 复制代码
import torch

# 创建一个形状为(3, 2)的张量,并填充为0.5
x = torch.full((3, 2), 0.5)
print(x)
# 输出结果:
# tensor([[0.5000, 0.5000],
#         [0.5000, 0.5000],
#         [0.5000, 0.5000]])

torch.nonzero()

torch.nonzero()是PyTorch中的一个函数,用于返回张量中非零元素的索引。它的语法是:

torch.nonzero(input, *, out=None)

参数说明:

input:要检查的张量。

out(可选):输出张量,用于存储结果。

返回值是一个包含所有非零元素的索引的张量。每一行表示一个非零元素的索引,每一列表示一个维度的索引。

python 复制代码
下面是一个简单的示例:
import torch

# 创建一个张量
a = torch.tensor([[0, 1, 0],
                  [2, 0, 3]])

# 使用torch.nonzero()找到非零元素的索引
indices = torch.nonzero(a)

print(indices)
输出结果为:

tensor([[0, 1],
        [1, 0],
        [1, 2]])

unsqueeze(dim=0) 和 squeeze(0)

unsqueeze(dim=0)

用于在指定维度上给张量添加额外的维度。

在这里,假设anchors是一个PyTorch张量。unsqueeze函数用于扩展张量的维度。dim=0参数指定了要添加额外维度的位置。

例如,如果anchors是一个形状为(N,)的张量,其中N表示张量中的元素个数,那么anchors.unsqueeze(dim=0)将返回一个形状为(1, N)的张量,其中在索引0处添加了额外的维度。

squeeze(0)

是在PyTorch中的一种方法调用,用于去除张量中尺寸为1的维度。

假设anchors是一个PyTorch张量。squeeze函数可以用来去除张量中尺寸为1的维度。参数dim=0指定了要去除的维度位置。

例如,如果anchors是一个形状为(1, N)的张量,其中第一个维度的大小是1,那么anchors.squeeze(0)将返回一个形状为(N,)的张量,去除了原始张量中的第一个维度。

相关推荐
青椒大仙KI113 分钟前
24/9/19 算法笔记 kaggle BankChurn数据分类
笔记·算法·分类
Narutolxy9 分钟前
Python 单元测试:深入理解与实战应用20240919
python·单元测试·log4j
Amo Xiang31 分钟前
2024 Python3.10 系统入门+进阶(十五):文件及目录操作
开发语言·python
liangbm341 分钟前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
GoppViper1 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理
B站计算机毕业设计超人1 小时前
计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
爬虫·python·深度学习·算法·机器学习·自然语言处理·数据可视化
羊小猪~~1 小时前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn
Charles Ray2 小时前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码2 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
我要吐泡泡了哦3 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎