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

pytorch的基础使用(一)

ztj100 2025-02-11 14:27 49 浏览 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

相关推荐

sharding-jdbc实现`分库分表`与`读写分离`

一、前言本文将基于以下环境整合...

三分钟了解mysql中主键、外键、非空、唯一、默认约束是什么

在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。...

MySQL8行级锁_mysql如何加行级锁

MySQL8行级锁版本:8.0.34基本概念...

mysql使用小技巧_mysql使用入门

1、MySQL中有许多很实用的函数,好好利用它们可以省去很多时间:group_concat()将取到的值用逗号连接,可以这么用:selectgroup_concat(distinctid)fr...

MySQL/MariaDB中如何支持全部的Unicode?

永远不要在MySQL中使用utf8,并且始终使用utf8mb4。utf8mb4介绍MySQL/MariaDB中,utf8字符集并不是对Unicode的真正实现,即不是真正的UTF-8编码,因...

聊聊 MySQL Server 可执行注释,你懂了吗?

前言MySQLServer当前支持如下3种注释风格:...

MySQL系列-源码编译安装(v5.7.34)

一、系统环境要求...

MySQL的锁就锁住我啦!与腾讯大佬的技术交谈,是我小看它了

对酒当歌,人生几何!朝朝暮暮,唯有己脱。苦苦寻觅找工作之间,殊不知今日之事乃我心之痛,难道是我不配拥有工作嘛。自面试后他所谓的等待都过去一段时日,可惜在下京东上的小金库都要见低啦。每每想到不由心中一...

MySQL字符问题_mysql中字符串的位置

中文写入乱码问题:我输入的中文编码是urf8的,建的库是urf8的,但是插入mysql总是乱码,一堆"???????????????????????"我用的是ibatis,终于找到原因了,我是这么解决...

深圳尚学堂:mysql基本sql语句大全(三)

数据开发-经典1.按姓氏笔画排序:Select*FromTableNameOrderByCustomerNameCollateChinese_PRC_Stroke_ci_as//从少...

MySQL进行行级锁的?一会next-key锁,一会间隙锁,一会记录锁?

大家好,是不是很多人都对MySQL加行级锁的规则搞的迷迷糊糊,一会是next-key锁,一会是间隙锁,一会又是记录锁。坦白说,确实还挺复杂的,但是好在我找点了点规律,也知道如何如何用命令分析加...

一文讲清怎么利用Python Django实现Excel数据表的导入导出功能

摘要:Python作为一门简单易学且功能强大的编程语言,广受程序员、数据分析师和AI工程师的青睐。本文系统讲解了如何使用Python的Django框架结合openpyxl库实现Excel...

用DataX实现两个MySQL实例间的数据同步

DataXDataX使用Java实现。如果可以实现数据库实例之间准实时的...

MySQL数据库知识_mysql数据库基础知识

MySQL是一种关系型数据库管理系统;那废话不多说,直接上自己以前学习整理文档:查看数据库命令:(1).查看存储过程状态:showprocedurestatus;(2).显示系统变量:show...

如何为MySQL中的JSON字段设置索引

背景MySQL在2015年中发布的5.7.8版本中首次引入了JSON数据类型。自此,它成了一种逃离严格列定义的方式,可以存储各种形状和大小的JSON文档,例如审计日志、配置信息、第三方数据包、用户自定...

取消回复欢迎 发表评论: