首页 > 编程语言 >动手学深度学习-python基础知识介绍part1

动手学深度学习-python基础知识介绍part1

时间:2025-01-06 15:25:52浏览次数:1  
标签:tensor python torch 张量 基础知识 part1 print id before

基础详解-part1


import torch

x=torch.arange(12)
x
x.shape
x.numel() #数组中元素的总数
# 修改形状
x.reshape(3,4)
torch.zeros((2,3,4))
# 两层,三行,四列
print(torch.tensor([[2,1,4,3],[1,2,3,4],[4,3,2,1]]).shape)#二维

# 两个框表示二维,三个表示三维
print(torch.tensor([[[2,1,4,3],[1,2,3,4],[4,3,2,1]]]).shape)#三维

标准算术运算

x=torch.tensor([1.0,2,4,8])
y=torch.tensor([2,2,2,2])
print(x+y)
print(x-y)
print(x*y)
print(x/y)
print(x**y) #x的y阶
print(torch.exp(x)) #计算输入张量x中每个元素的指数值;通俗讲是e的x次方(e大约等于2.71828) 

# 多个张量连接
x=torch.arange(12,dtype=torch.float32).reshape((3,4))
y=torch.tensor([[2.0,1,4,3],[1,2,3,4],[4,3,2,1]])
torch.cat((x,y),dim=0),torch.cat((x,y),dim=1)
#torch.cat((x, y), dim=0):在第0维(行)上拼接 x 和 y。这将创建一个6行4列的张量,其中前3行是 x,后3行是 y。
# torch.cat((x, y), dim=1):在第1维(列)上拼接 x 和 y。这将创建一个3行8列的张量,其中前4列是 x,后4列是 y。

x.sum()

广播机制:广播允许在某些情况下,即使数组或张量的形状不完全相同,也可以进行元素级的运算

a=torch.arange(3).reshape((3,1))
b=torch.arange(2).reshape((1,2))
print(a,b)
print(a+b)

x[-1],x[1:3]
x[1,2]=9
x
x[0:2,:]=12
x

内存问题

#id()类似于指针
before=id(y) 
y=y+x
id(y)==before
z=torch.zeros_like(y)
print('id(z):',id(z))
z[:]=x+y
print('id(z):',id(z))
before=id(x)
x+=y
id(x)==before
numpy
a=x.numpy()
b=torch.tensor(a)
type(a),type(b)
# 将大小为1的张量转换为python标量
a=torch.tensor([3.5])
a,a.item(),float(a),int(a)
# a.item():将张量中的单个元素转换为Python的标量值

标签:tensor,python,torch,张量,基础知识,part1,print,id,before
From: https://www.cnblogs.com/lizhongzheng/p/18655378

相关文章

  • C#基于pythonnet调用Python的pyd文件,实现交互
    privatevoidTestPython(){try{//python环境路径stringpathToVirtualEnv=@"H:\ProgramData\anaconda3\envs\python39";Environment.SetEnvironmentVariable("PATH",pathToVirtualEnv,EnvironmentVari......
  • Python中的 多维列表、锯齿数组
    多维列表(模拟多维数组)定义:通过嵌套列表来创建多维列表。下面以三维列表为例。访问:使用多个索引访问列表中的元素,索引从0开始。销毁:Python有垃圾回收机制,当多维列表不再被引用时,内存会被自动回收。#定义一个三维列表,大小为2x3x4multiDimList=[[[0for_inrange(4)]fo......
  • python charm-crypto库的使用
    在ubuntu20.04.6LTS上安装pipinstallcharm-crypto1fromcharm.toolbox.pairinggroupimportPairingGroup,ZR,G1,G2,GT,pair2#创建SS512椭圆循环群3group=PairingGroup('SS512')4#生成ZR群上元素:数字5group.random()6group.order()7group.rand......
  • python+requests+allure自动化
    python代码实现接口自动化使用工具或代码代替人对接口进行测试的技术1、整体流程1、选取自动化测试用例2、搭建自动化测试环境3、搭建自动化测试框架4、代码实现自动化5、输出测试报告6、实现持续集成2、搭建自动化测试环境编程语言:python测试框架:pytest接口请求:re......
  • 基础知识-虚拟化(Virtualization)技术
    (250106)参考资料KVM虚拟化技术|cnblogs|惨绿少年@clsn.io虚拟化介绍|cnblogs|休耕云计算与虚拟化技术发展编年史|cnblogs|云物互联nova系列二:kvm介绍|cnblogs|linhaifeng虚拟化与容器|cnblogs|marility《LPIC-3-Virtualization-and-Containerization-......
  • 【Python运维】利用Python实现高效的持续集成与部署(CI/CD)流程
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界持续集成与部署(CI/CD)是现代软件开发中不可或缺的实践,通过自动化测试、构建和部署流程,显著提高了开发效率与运维质量。本文详细介绍了如何使用P......
  • 用Python进行大数据处理:如何使用pandas和dask处理海量数据
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界随着数据量的爆炸式增长,大数据处理成为现代数据科学和工程领域的核心挑战。Python作为数据分析的重要工具,其生态系统中的pandas和dask库为处理......
  • 基于拉普拉斯变换的信号处理(Python)
    本例子使用巴特沃斯低通滤波器对信号进行滤波,使用汉宁窗绘制信号的STFT,然后进行拉普拉斯变换。构造个模拟信号,采样频率率为50Hz,持续10s。importnumpyasnpsample_rate=50#50Hzresolutionsignal_lenght=10*sample_rate#10seconds#Generatearandomx(t)......
  • 【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
    ......
  • 【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
    ......