百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

pytorch的基础使用(一)

ztj100 2025-02-11 14:27 36 浏览 0 评论

本文将从最基础的 pytorch 操作一步步学习

1、通过python列表创建 torch数据

# 导入pytorch的库在这里也就是torch
import torch
# 通过一个列表来创建 torch
data1 = torch.tensor([[1.1, -1.1], [1. , -1.1]])

这里备注下,其实在 torch 中 tensor 很多操作都很类似 numpy 这个库

2、通过 numpy 的数组来创建 tensor

data2 = torch.tensor(np.array([[1,2,3],[4, 5, 6]]))

输出:
tensor([[1, 2, 3],
        [4, 5, 6]], dtype=torch.int32)

3、通过 torch自带的 api 来创建 tensor

torch.empty(3, 4 )  创建3行4列的空tensor,说是创建空的,其实就是0
torch.ones( [3,4] ) 创建3行4列的全为1的 tensor
torch.zeros([3,4]) 创建3行4列全为0的tensor
torch.rand([3,4]) 创建一个3行4列的tensor,其中的元素为0~1 之间的数据
torch.randn([3,4]) 创建一个3行4列的tensor,其实里面的元素方差为1,均值为0

4、获取 torch 中的数据

4.1 当只有一个元素的时候

  	# 当 torch 中只有一个元素的时候,可以用 item() 来获取这个元素
	  t1 = a = torch.tensor(np.arange(1))
    print(t1)
    # out:tensor([0], dtype=torch.int32)
    print(t1.item())
    # out:0

4.2 转化成 numpy 数组来实现读取。

    t1 = a = torch.randn([3, 4])
    print(type(t1))
    print(t1)
    print(type(t1.numpy()))
    print(t1.numpy())
out:

tensor([[-2.1239, -0.0909, -1.5348, -1.2876],
        [-0.9081,  0.3360,  1.6969,  0.3123],
        [ 0.3102,  0.8689, -0.3897,  0.2151]])

[[-2.123888   -0.09085716 -1.534757   -1.2876265 ]
 [-0.90809774  0.3359716   1.696873    0.3122723 ]
 [ 0.31016025  0.86885756 -0.38969612  0.21510045]]

从上面输出的结果来看,torch 经过转换后就变成了 numpy 这个数组

5、torch 其他常见的属性操作

5.1、torch 获取其形状

data2 = torch.empty(3, 4)
data2.size()

# torch.Size([3, 4])

5.2、torch 获取其形状

data2 = torch.empty(3, 4)
data2 = data2.view(2,6)

# tensor([[0., 0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0., 0.]])

在 numpy 中改变形状是使用 shape,来改变,而在 torch 中是通过 view 来改变

5.3、其他操作

获取最大值:`tensor.max()`
转置:`tensor.t()`
获取某行某列的值:`tensor[1,3]`  这里就是获取tensor中第一行第三列的值
tensor[1,3]=100` 对tensor中第一行第三列的位置进行赋值100`
 torch切片: x[:,1]

6、torch 常见的数据类型

数据类型的获取   x.dtype  # torch.int32
数据类型的设置   torch.ones([2,3],dtype=torch.float32)
数据类型的修改  a.type(torch.float)  # 比如a 在之前已经设置过了,如果这样再设置一遍就是修改了

7、torch 的基本运算操作

x = x.new_ones(5, 3, dtype=torch.float)
 y = torch.rand(5, 3)
# 相加操作
 x+y
 torch.add(x,y)
x.add(y)
x.add_(y)
注意的是最后这一种操作会改变X的值 
x +10  # 也就是对每个元素进行+10

相关推荐

Vue3非兼容变更——函数式组件(vue 兼容)

在Vue2.X中,函数式组件有两个主要应用场景:作为性能优化,因为它们的初始化速度比有状态组件快得多;返回多个根节点。然而在Vue3.X中,有状态组件的性能已经提高到可以忽略不计的程度。此外,有状态组...

利用vue.js进行组件化开发,一学就会(一)

组件原理/组成组件(Component)扩展HTML元素,封装可重用的代码,核心目标是为了可重用性高,减少重复性的开发。组件预先定义好行为的ViewModel类。代码按照template\styl...

Vue3 新趋势:10 个最强 X 操作!(vue.3)

Vue3为前端开发带来了诸多革新,它不仅提升了性能,还提供了...

总结 Vue3 组件管理 12 种高级写法,灵活使用才能提高效率

SFC单文件组件顾名思义,就是一个.vue文件只写一个组件...

前端流行框架Vue3教程:17. _组件数据传递

_组件数据传递我们之前讲解过了组件之间的数据传递,...

前端流行框架Vue3教程:14. 组件传递Props效验

组件传递Props效验Vue组件可以更细致地声明对传入的props的校验要求...

前端流行框架Vue3教程:25. 组件保持存活

25.组件保持存活当使用...

5 个被低估的 Vue3 实战技巧,让你的项目性能提升 300%?

前端圈最近都在卷性能优化和工程化,你还在用老一套的Vue3开发方法?作为摸爬滚打多年的老前端,今天就把私藏的几个Vue3实战技巧分享出来,帮你在开发效率、代码质量和项目性能上实现弯道超车!一、...

绝望!Vue3 组件频繁崩溃?7 个硬核技巧让性能暴涨 400%!

前端的兄弟姐妹们五一假期快乐,谁还没在Vue3项目上栽过跟头?满心欢喜写好的组件,一到实际场景就频频崩溃,页面加载慢得像蜗牛,操作卡顿到让人想砸电脑。用户疯狂吐槽,领导脸色难看,自己改代码改到怀疑...

前端流行框架Vue3教程:15. 组件事件

组件事件在组件的模板表达式中,可以直接使用...

Vue3,看这篇就够了(vue3 从入门到实战)

一、前言最近很多技术网站,讨论的最多的无非就是Vue3了,大多数都是CompositionAPI和基于Proxy的原理分析。但是今天想着跟大家聊聊,Vue3对于一个低代码平台的前端更深层次意味着什么...

前端流行框架Vue3教程:24.动态组件

24.动态组件有些场景会需要在两个组件间来回切换,比如Tab界面...

前端流行框架Vue3教程:12. 组件的注册方式

组件的注册方式一个Vue组件在使用前需要先被“注册”,这样Vue才能在渲染模板时找到其对应的实现。组件注册有两种方式:全局注册和局部注册...

焦虑!Vue3 组件频繁假死?6 个奇招让页面流畅度狂飙 500%!

前端圈的朋友们,谁还没在Vue3项目上踩过性能的坑?满心期待开发出的组件,一到高并发场景就频繁假死,用户反馈页面点不动,产品经理追着问进度,自己调试到心态炸裂!别以为这是个例,不少人在电商大促、数...

前端流行框架Vue3教程:26. 异步组件

根据上节课的代码,我们在切换到B组件的时候,发现并没有网络请求:异步组件:...

取消回复欢迎 发表评论: