当前位置: 首页 > news >正文

11.20 深度学习-pytorch包和属性的基础语法

import torch

import numpy as np

def sci_close():

    # 关闭pytorch 数据打印出来时科学计数法

    torch.set_printoptions(sci_mode=False)

    pass

    return 0

def create_tensor():

    # 创建张量

    t1=torch.tensor(5) # 一阶张量 阶数看你传入的矩阵是多少阶的 这个是标量 不是一阶 一阶要加[] 加了[]才是多少阶

    t1.dtype # tensor张量里面的数据类型 只能是int float bool

    t1.shape # tensor张量的形状 标量的shape啥都没有

    t1.device # 数据运行的设备

    # 创建的时候也可以传入np数组 list

    # 创建的时候也可以传入参数 dtype 如果数据超出范围会自动变为最大范围的余数     设置tensor数据类型  tensor数据类型有..... 都是torch里面的数据类型int8.....跟numpy类似

    # 创建的时候可以指定数据运行的设备 传入参数device "cpu" 或者 "cuda" 不同设备上的数据无法运算

    t2=torch.tensor([[1,2,3],[300,22,11]],dtype=torch.int8,device="cpu")

    # print(t2.device)

    # 也可以使用 tensor.to("cpu") tensor.to("cuda") 返回一个新的运行在新设备上的tensor

    t3=t2.to("cpu")

    print(t3.device)

    # 查看cuda是否可用 返回布尔值

    bool1=torch.cuda.is_available()

    # 可以根据这个布尔值 设计一个 有显卡先用显卡 没显卡用CPU的程序

    # 也可以使用tensor.cuda() 直接返回一个在显卡上运行的新tensor

def choose_device():

    t1=torch.Tensor(3,2,device="cpu")

    if torch.cuda.is_available():

        t2=t1.cuda()

    else:

        t2=t1

    t2=t1

    torch.cuda.is_available() and t2=t1.cuda()


 

def create_Tensor():

    # 利用Tensor()直接创建特定形状的张量

    # 这个是大写的Tensor

    t1=torch.Tensor(5,4) #  创建 一个5行4列的二维tensor

    a=t1.dtype #

    b=t1.shape #

    # print(b)

    # 也可以在Tensor前面加数据类型 创建出来的tensor里面的数据就是对应的类型 位数不同

    tt2 = torch.FloatTensor(3, 3)

    tt3 = torch.DoubleTensor(3, 3)

    tt4 = torch.LongTensor(3, 3)

    tt5 = torch.ShortTensor(3, 3)

    print(t1)

# 创建线性和随机张量

def create_line_random_tensor():

    # 跟numpy的差不多 不过np变为了torch star stop step 不包括stop

    # 感觉torch就是集成了一个numpy在里面

    t1=torch.arange(1,10,step=2)  # 知道等差公差

    # print(t1)

    # 包含了stop

    t2=torch.linspace(1,10,4,dtype=torch.int8) # 知道等差的 个数

    # print(t2)

   

    # 等比数列 logspace  base 基数 这个是2的1次方开始 到2的10次方 step为元素个数n

    t3=torch.logspace(1,10,3,base=2)

    # 随机

    # 可以设置随机数种子 设置玩后可以获取一下一般记在心里

    torch.manual_seed(666)

    # 获取 返回了随机数种子

    r=torch.initial_seed()

    # 生成随机张量 rand真随机    randn随机出来来的符合标准正态分布 靠近中心的要大点

    t4=torch.rand(10,5)

    # print(t4)

    # 自己设置一个正太分布 来随机生成 传入均值和方差 和形状

    t5=torch.normal(2,1,(3,3))

    print(t5)

# 创建0-1张量 创建指定值张量 创建单位矩阵张量

def zero_one():

    # 创建全0 张量

    t1=torch.zeros(5,5)

    # print(t1)

    # 根据其他的tensor的形状来创建全0张量 zeros_like

    t2=torch.rand(2,3)

    # print(t2)

    t3=torch.zeros_like(t2)

    # print(t3)

    # 全1张量 函数名变为ones 也可以like

    t4=torch.ones(5,5)

    t6=torch.ones_like(t2)

    # print(t6,t4)

    # 创建指定值张量传入形状和 填充值

    t7=torch.full((3,3),666)

    # like

    t8=torch.full_like(t2,666)

    # print(t7,t8)

    # 创建单位矩阵张量 因为是方阵传入一个行就行

    t9=torch.eye(4)

    print(t9)

# dtype 转换

def change_dtype():

    t1=torch.rand(2,3)

    # tensor.type(torch数据类型) 返回一个新的          

    t2=t1.type(torch.int8)

    # 也可以用对应类型的api tensor.对应的api 直接变  跟cuda()方法一样 返回一个新的

    t3=t1.float()

    # 。。。。。。。。


 

if __name__=="__main__":

    # create_tensor()

    # create_Tensor()

    # create_line_random_tensor()

    # zero_one()

   

    pass






 

http://www.lryc.cn/news/488385.html

相关文章:

  • SpringMVC域对象共享数据
  • 每日论文23-24ESSERC 6.4-16.1Ghz混合并联-串联谐振器
  • 【软考】系统架构设计师-信息安全技术基础
  • kali搭建pikachu靶场
  • 注解用于从 HTTP 请求中提取数据
  • (Linux)搭建静态网站——基于http/https协议的静态网站
  • 【机器学习chp3】判别式分类器:线性判别函数、线性分类器、广义线性分类器、分段线性分类器
  • 【学习】【HTML】HTML、XML、XHTML
  • ARM中ZI-data段和RW-data段
  • 关联度分析、灰色预测GM(1,1)、GM(1,1)残差模型——基于Python实现
  • linux常用命令(网络相关)
  • 【uni-app多端】修复stmopjs下plus-websocket无心跳的问题
  • VScode学习前端-01
  • Java-05 深入浅出 MyBatis - 配置深入 动态 SQL 参数、循环、片段
  • 突破自动驾驶瓶颈!KoMA:多智能体与大模型的完美融合
  • YOLO入门教程(三)——训练自己YOLO11实例分割模型并预测【含教程源码+一键分类数据集 + 故障排查】
  • 【加入默语老师的私域】C#面试题
  • 称重传感器指示器行业全面且深入的分析
  • NAT网络地址转换——Easy IP
  • 【Visual Studio系列教程】如何在 VS 上编程?
  • Mybatis-Plus 多租户插件属性自动赋值
  • AWTK-WIDGET-WEB-VIEW 实现笔记 (4) - Ubuntu
  • Python入门(7)--高级函数特性详解
  • 【数据库原理】理解数据库,基础知识
  • VConsole——(H5调试工具)前端开发使用于手机端查看控制台和请求发送
  • 论文分享 | FuzzLLM:一种用于发现大语言模型中越狱漏洞的通用模糊测试框架
  • vmWare虚拟环境centos7安装Hadoop 伪分布式实践
  • 【C++入门(一)】半小时入门C++开发(深入理解new+List+范围for+可变参数)
  • Vue 3与TypeScript集成指南:构建类型安全的前端应用
  • MATLAB和Python发射光谱