首页 > 编程语言 >基于Python的机器学习系列(28):PyTorch中的张量基础

基于Python的机器学习系列(28):PyTorch中的张量基础

时间:2024-09-06 16:52:28浏览次数:16  
标签:tensor Python torch 28 张量 PyTorch print NumPy

        在本篇中,我们将介绍PyTorch中的张量基础,包括如何将NumPy数组转换为PyTorch张量、创建张量、以及进行基本的张量操作。

确认PyTorch版本

        首先,确认您使用的PyTorch版本:

import torch
print(torch.__version__)
将NumPy数组转换为PyTorch张量

        PyTorch的张量是一个多维矩阵,包含单一数据类型的元素。我们可以将NumPy数组转换为PyTorch张量,利用PyTorch的计算能力:

import numpy as np
import torch

# 创建NumPy数组
arr = np.array([1, 2, 3, 4, 5])
print(arr)
print(arr.dtype)
print(type(arr))

# 将NumPy数组转换为PyTorch张量
x = torch.from_numpy(arr)
print(x)
print(x.dtype)
print(type(x))
print(x.type())  # 输出具体的张量类型

# 另一个例子
arr2 = np.arange(0., 12.).reshape(4, 3)
print(arr2)

x2 = torch.from_numpy(arr2)
print(x2)
print(x2.type())

        这里的torch.DoubleTensor表示64位浮点数据。

张量数据类型

        PyTorch支持多种数据类型,以下是常用的数据类型及其对应的张量类型:

TYPENAMEEQUIVALENT
float3232-bit floating pointtorch.FloatTensor
float6464-bit floating pointtorch.DoubleTensor
int6464-bit integertorch.LongTensor
int3232-bit integertorch.IntTensor
int1616-bit integertorch.ShortTensor
创建张量

        张量可以通过多种方式创建:

# 创建全0张量
zeros_tensor = torch.zeros((3, 3))

# 创建全1张量
ones_tensor = torch.ones((2, 3))

# 创建随机张量
random_tensor = torch.rand((2, 3))

print(zeros_tensor)
print(ones_tensor)
print(random_tensor)
张量操作

        张量支持多种操作,如索引、切片、变形、算术运算等。例如:

# 张量索引和切片
tensor = torch.tensor([[1, 2, 3], [4, 5, 6]])
print(tensor[0])  # 第一行
print(tensor[:, 1])  # 第二列

# 张量变形
reshaped_tensor = tensor.view(3, 2)
print(reshaped_tensor)

# 张量算术运算
sum_tensor = tensor + 10
print(sum_tensor)

# 矩阵乘法
matrix1 = torch.tensor([[1, 2], [3, 4]])
matrix2 = torch.tensor([[5, 6], [7, 8]])
result = torch.matmul(matrix1, matrix2)
print(result)

        通过这些基本操作,我们可以更高效地处理数据并利用PyTorch进行深度学习模型的开发。

结语

        在本篇中,我们深入探讨了PyTorch中的张量基础。我们学习了如何将NumPy数组转换为PyTorch张量,创建不同类型的张量,以及进行基本的张量操作。这些基础知识是我们使用PyTorch进行深度学习和数据处理的关键。

        通过掌握这些操作,我们可以更有效地管理和转换数据,为后续的深度学习模型构建和训练奠定坚实的基础。接下来的内容将继续深入探讨PyTorch的高级功能和应用,帮助我们更好地利用这个强大的工具进行机器学习和深度学习任务。

如果你觉得这篇博文对你有帮助,请点赞、收藏、关注我,并且可以打赏支持我!

欢迎关注我的后续博文,我将分享更多关于人工智能、自然语言处理和计算机视觉的精彩内容。

谢谢大家的支持!

标签:tensor,Python,torch,28,张量,PyTorch,print,NumPy
From: https://blog.csdn.net/ljd939952281/article/details/141691583

相关文章

  • PyTorch从入门到放弃之数据模块
    目录Dataset简介及用法Map-styledatasets类型Iterable-styledatasets类型DataLoader简介及用法Dataset和DataLoader都是用来帮助我们加载数据集的两个重要工具类。Dataset用来构造支持索引的数据集。在训练时需要在全部样本中拿出小批量数据参与每次......
  • python画图|垂线标记系列
    进行了一段时间的直方图学习之后,发现python的matplo居然还支持画垂线标记图,赶紧把它记录下来。直方图绘制教程见下述链接:【a】直方图绘制基础教程:python画图|直方图绘制教程-CSDN博客【b】直方图绘制进阶教程:python画图|直方图绘制教程进阶-CSDN博客【c】堆叠直方图绘制......
  • P1928 外星密码题解
    初看这题时,感觉就是一个简简单单的递归,便有了以下代码:#include <bits/stdc++.h>using namespace std;string re(){    string s="",s1="";    char c;    int n;    while(cin>>c){        if(c=='['){            cin>>n;......
  • 【python创建字符串数组的几种方式】
    在Python中可以使用以下几种方式创建字符串数组:一、使用列表(list)列表可以存储多个字符串,类似于其他语言中的数组。#创建一个包含多个字符串的列表string_array=['apple','banana','cherry']print(string_array)二、使用元组(tuple)元组与列表类似,但元组是不可......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    摘 要随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设英语自主学习平台。本设计主要实现集人性化、高效率、便捷等优点于一身的英语自......
  • 新学期必看!豆包MarsCode 教你 5 分钟拿捏 Python 数据分析!
    开学啦!!听说,有同学想在新学期多掌握几门技能?有同学写毕设搞科研不会爬虫?有文科生正心怀毕业转码梦?作为一门实用且能够有效提升个人竞争力的技能,Python的重要性不言而喻。新学期到了,各位壮志满怀想狠狠努力一把的同学们,快来跟着豆包MarsCode 零基础轻松上手Python啦!在上一期「Pyt......
  • python __repr__函数和__str__函数
    __repr__函数和__str__函数都是类似的用于显示类对象的作用。classMyClass:def__init__(self,name):self.name=namedef__repr__(self):#__str__(self)returnself.nameresult=MyClass("repr/str魔法函数")print("MyClasresult:",......
  • python 魔法函数
    概述魔法函数(MagicMethods),是Python的一种高级语法,允许在类中自定义函数(函数名格式一般为__xx__),并绑定到类的特殊方法中。比如在类A中自定义__str__()函数,则在调用str(A())时,会自动调用__str__()函数,并返回相应的结果。在我们平时的使用中,可能经常使用__init__函数(构造函数)和__d......
  • 20240906_150054 python 内容对齐方式 format
    format左右中对齐让数据左对齐"{:!<30}".format(数据)让数据右对齐"{:!>30}".format(数据)让数据居中对齐"{:!^30}".format(数据)......
  • 20240906_150844 python 槽的进制转换
    十进制转二进制b是bit的意思比特十进制转八进制十进制转16进制记忆b,二进制o,八进制x,十六进制......