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

Python自学笔记

pytorch

花了好久时间终于装好了 pytorch,连上了 vscode

一些传送门:

pytorch 官网
pytorch 中文手册
深入浅出 pytorch

前置

引入 torch 库

import torch

查看是否有可用的 CUDA

torch.cuda.is_available()

tensor

张量

一些基本的操作:
创建一个 tensor

a = torch.tensor([1,2,3], dtype = int)

创建一个二维 tensor

a = torch.tensor([[1.1, 2, 8.1],[3.1, 6, 9.1]], dtype=float)

查看数据类型

a.dtype

查看数据维度(行数)

a.ndim

查看数据形状(几行几列)

a.shape  # method 1
a.size() # method 2

数据生成

生成全 \(1\) 矩阵

a = torch.ones(2, 3)

生成全 \(0\) 矩阵

a = torch.zeros(2, 3)

以上两例均默认生成 float,只填一个参数则默认一维

生成随机矩阵:
生成 $\left [ 0,1 \right ) $ 的随机 float 矩阵

a = torch.rand(3, 3)

生成在 low 与 high 之间(左闭右开,low 默认为 \(0\))的随机 int 矩阵

a = torch.randint(2, 18, (3, 4))

生成符合正态分布的随机矩阵

a = torch.randn(2, 4)

生成相似的随机矩阵

b = torch.rand_like(a, dtype=float)

改变矩阵形状(不改变大小)

# 此例中 a 原来大小为(3, 4)
a = a.view(2, 6)    # method 1
a = a.reshape(2, 6) # method 2

取出 tensor 中的值

a = torch.rand(3, 3)
b = a[2][1].item()

torch 的 tensor 与 numpy 的 array 之间互相转化

a = torch.randint(2, 7, (3, 4))
b = numpy.array(a)
c = torch.tensor(b)

生成固定整数列的矩阵

a = torch.arange(4, 12).reshape(2, 4)

基本运算操作

两个形状相同的矩阵对应位置相加

a + b                    # method 1
torch.add(a, b, out = c) # method 2 输出保存到 c
a.add_(b)				 # method 3 a = a + b

减法(-)、乘法(*)、除法(/)、取模(%)、整除(//)同理

a ** 2

矩阵乘法

torch.matmul(a, b) # a 的行数要和 b 的列数对上

开方

torch.sqrt(a)

转置

a.T

矩阵内统计

torch.sum(a)    #求和
torch.min(a)    #最小
torch.max(a)    #最大
torch.argmin(a) #最小值所在位置索引
torch.argmax(a) #最大值所在位置索引
torch.mean(a)   #平均数
torch.median(a) #中位数(偶数个取偏小的那个)

索引

跟 python 普通的列表的各种操作基本一样

取出一个子序列

index = [1, 3, 5, 5]
a = a[index]

自动求导

import torch
a = torch.ones((2, 2), requires_grad = True) #可获取梯度
b = a + 2
c = b * b * 3
out = c.mean()
out.backward()
print(a.grad) 
http://www.jsqmd.com/news/17427/

相关文章:

  • 4-8〔O҉S҉C҉P҉ ◈ 研记〕❘ WEB应用攻击▸命令注入漏洞 - 实践
  • 2025年项目管理工具生态全景:技术主权与AI赋能的行业变革
  • sqlalchemy 密码@ 处理, 以及ssl连接处理
  • el-dialog 嵌套遮罩灰色问题
  • 2025 年破碎机厂家最新推荐榜,聚焦企业技术实力与市场口碑深度解析圆锥/辊式/对辊/煤矸石/砂石破碎机厂家推荐
  • 站位3
  • AI 的能源危机:训练一个模型究竟要耗掉多少电?
  • 2025 年制砂机厂家最新推荐榜,聚焦企业技术实力与市场口碑深度解析高效/冲击式/砂石/新疆制砂机厂家推荐
  • 拆解3D Gaussian Splatting:原理框架、实战 demo 与自驾仿真落地探索!
  • Hyper-V 与 root的Android7模拟器共存
  • 基于深度学习的CT扫描图像肝脏肿瘤智能检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】 - 实践
  • resend 单次发送命令
  • 视频监控界的“万能翻译器”:视频汇聚平台EasyCVR视频接入功能全解读
  • PCIe 全高/半高,全长/半长 尺寸介绍 - ENGINEER
  • Android脱壳
  • Linux框架编程:线程控制
  • 基于Ubuntu22.04 部署Dify详细教程
  • iOS 混淆工具链实战 多工具组合完成 IPA 混淆与加固(iOS混淆|IPA加固|无源码加固|App 防反编译)
  • WebSocket Turbo Intruder:挖掘WebSocket安全漏洞的利器
  • Gitee:本土化技术平台如何重塑中国开发者生态
  • 使用 Github Pages 和 Hexo 搭建博客
  • linux 移动硬盘加载失败
  • 吱吱企业即时通讯不止通讯,还是数字化协作的安全与效率标杆
  • callout样式
  • java Web 检查清单程序设计与实现 - 教程
  • Java 8 - Optional类
  • 【循环神经网络5】GRU模型实战,从零开始构建文本生成器 - 详解
  • 得帆AI aPaaS(AI低代码)1.0产品特性(5)-智能搭建(二)
  • 实用指南:如何快速学习一个网络协议?
  • 实用指南:【Linux 系统】命令行参数和环境变量