【Pytorch神经网络理论篇】 02 Pytorch快速上手(二)GPU与CPU张量切换+具有随机值的张量+张量的数学运算

同学你好!本文章于2021年末编写,获得广泛的好评!

故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现,

Pytorch深度学习·理论篇(2023版)目录地址为:

CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!https://v9999.blog.csdn.net/article/details/127587345欢迎大家订阅(2023版)理论篇

以下为2021版原文~~~~

 

1 在GPU与CPU上定义张量

1.1 GPU与CPU的张量相互转化

import torch
# 创建一个张量
a = torch.FloatTensor()
# 将CPU上的张量在GPU所管理的内存中重新创建
b = a.cuda()
print(b) # 输出 tensor([], device='cuda:0')
# 将GPU上的张量创建到CPU上
print(b.cpu()) # 输出   tensor([])

1.2 在GPU上定义张量

import torch
# 创建一个张量
a = torch.tensor([4],device='cuda')#在GPU上定义一个张量
print(a) # 输出 tensor([4], device='cuda:0')

1.3 指定GPU设备运行的两种方法

1.3.1 代码方式

import torch
# 创建一个张量
a = torch.FloatTensor([4])
print(a.to('cuda:0')) # 输出 tensor([4.], device='cuda:0')

1.3.2 命令行方式

CUDA_VISIBLE_DEVICES=1     # 只有编号为1的GPU对程序是可见的,在代码中gpu[0]指的就是这块儿GPU
CUDA_VISIBLE_DEVICES=0,2,3 # 只有编号为0,2,3的GPU对程序是可见的,在代码中gpu[0]指的是第0块儿,# gpu[1]指的是第2块儿,gpu[2]指的是第3块儿
CUDA_VISIBLE_DEVICES=2,0,3 # 只有编号为0,2,3的GPU对程序是可见的,但是在代码中gpu[0]指的是第2块儿,# gpu[1]指的是第0块儿,gpu[2]指的是第3块儿

使用方法1:

CUDA_VISIBLE_DEVICES=0 python 自己的代码.py

使用方法2:

# 在代码首行添加如下代码
import os
os.environ["CUDA_VISIBLE_DEVICES"] = 0 # 将当前代码放置在第一个GPU上运行

2 具有随机值的张量

2.1 随机种子的设置

### 所有的随机值都是由随机种子设定的
import torch
torch.initial_seed() # 查看随机种子
torch.manual_seed(2) # 设置随机种子

2.2 生成指定形状的随机值

import torch
a = torch.rand(2,3) #指定形状
print(a) # 输出 tensor([[0.3513, 0.7726, 0.8044],[0.5643, 0.9863, 0.6723]])

2.3 生成线性空间的随机值

import torch
### torch.arange() 取值范围只包括初始值,不包括结束值
a = torch.arange(1,10,step=2) # 1至10之间,按照步长为2进行取值
print(a) # tensor([1, 3, 5, 7, 9])
### torch.linspace() 取值范围只包括初始值,也包括结束值
b = torch.linspace(1,9,steps=5)# 1至9之间,均匀取5个值
print(b) # tensor([1., 3., 5., 7., 9.])

2.4 生成对数空间的随机值

import torch
print(torch.logspace(1,9,steps=5)) #同torch.linspace()
# 输出 tensor([1.0000e+01, 1.0000e+03, 1.0000e+05, 1.0000e+07, 1.0000e+09])

2.5 生成未初始化的矩阵

import torch
print(torch.empty(1,2)) # 生成指定形状的未初始化的矩阵
# tensor([[6.6718e+35, 2.3473e-38]]) 

2.6 更多随机值生成函数

例如:伯努利分布、柯西分布、指数分布、几何分布、对数正态分布、正态分布、均匀分布、连续均匀分布

3 张量的数学运算

3.1 运算函数与运算方法

import torch
a = torch.FloatTensor([4])
print(a) # 输出 tensor([4.])
### Pytorch重载运算符
print(a+a) # 输出 tensor([8.])
### Pytorch的加法函数
b = torch.add(a,a) 
print(b) # 输出 tensor([8.])
### Pytorch的指定输出函数
torch.add(a,a,out=b)
print(b) # 输出 tensor([8.])

3.2 自变化运算函数

import torch
a = torch.FloatTensor([4])
### 自变化运算函数是指:在变量本身的基础上做运算,最终结果会作用于自己本身
a.add_(a)
print(a) # 输出 tensor([8.])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解读Android 4.0 Camera原生应用程序的设计思路

解读Android 4.0 Camera原生应用程序的设计思路 一篇很不错的文章: http://my.oschina.net/jerikc/blog/907911. 设置摄像头方向 2. 打开线程与预览线程 3. 设置参数 4. Camera外设按键 5. 自动对焦与触摸对焦 6. 拍照 7. 人脸检测 8. 位置管理 9. 旋转管理 10. 变…

【Pytorch神经网络理论篇】 03 Pytorch快速上手(三)张量的数据操作

1 张量的数据操作 1.1 torch.reshape()实现数据维度变化 import torch a torch.tensor([[1,2],[3,4]]) print(torch.reshape(a,(1,-1))) # 将其转化为只有1行数据的张量,参数-1表示自动计算 # tensor([[1, 2, 3, 4]]) print(a.reshape((1,-1))) # # 将其转化为只有1行数据的…

写一个包含多个事件四则运算的留存SQL ——impala hive

在实现一个留存业务需求时,碰到了一个难题,我需要提供展示一个按照如下图格式的数据, day 1 ~ day n的第一行是留存用户数量,第二行是一个由多个事件组合执行四则算术运算得到的复合数值,这里碰到的难点主要是第二行的…

V4L2用户空间和kernel层driver的交互过程

这篇文章详细分析了V4L2用户空间和kernel层driver的交互过程,目的只有一个:更清晰的理解V4L2视频驱动程序的系统结构,驱动编程方法,为以后开发视频驱动打好基础既然从用户层出发探究驱动层,这里先贴出应用层code&#…

【Pytorch神经网络理论篇】 04 Variable类型与自动微分模块剖析

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

php 对象赋值后改变成员变量影响赋值对象

话不多说看代码 <?php class obj {}$obj1new obj();//实例化对象 $obj2$obj1;//赋值新对象 $obj1->name"test";//改变老对象的成员变量属性 var_dump($obj1); var_dump($obj2); $obj2->name"name";//改变新对象的成员变量属性 var_dump($obj1); …

Android Camera 通过V4L2与kernel driver的完整交互过程

原文地址&#xff1a;Android Camera 通过V4L2与kernel driver的完整交互过程 作者&#xff1a;xinyuwuxian Android Camera 通过V4L2与kernel driver的完整交互过程之前在 Android Camera 的执行流程http://blog.chinaunix.net/uid-26765074-id-3499537.html这篇文章中已经详细…

【Pytorch神经网络理论篇】 05 Module类的使用方法+参数Parameters类+定义训练模型的步骤与方法

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]

2822: [AHOI2012]树屋阶梯 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 779 Solved: 453[Submit][Status][Discuss]Description 暑假期间&#xff0c;小龙报名了一个模拟野外生存作战训练班来锻炼体魄&#xff0c;训练的第一个晚上&#xff0c;教官就给他们出了个难题。由…

【Pytorch神经网络理论篇】 06 神经元+神经网络模型+全连接网络模型

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

面试题:N皇后问题,思路和python解题笔记

n皇后问题算法思路和python解法 问题描述 n皇后问题&#xff0c;在nn的棋盘上&#xff0c;解出n个皇后所有不能互相攻击的摆法&#xff0c; 皇后在数组中用“Q”表示&#xff0c;空地用“.”表示 返回的数据结构格式要求&#xff1a;[[“.Q…”,“…Q”,“Q…”,“…Q.”],[“…

【Pytorch神经网络理论篇】 07 激活函数+Sigmoid+tanh+ReLU+Swish+Mish+GELU

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络理论篇】 08 Softmax函数(处理分类问题)

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

Python套接字编程Socket Progaming——1

本篇文章是Network And Web Programing-Socket Programing分类中的第一篇文章&#xff0c;内容主要包含 Socket概念理解Socket programing介绍一个简单的TCP协议的server-client程序支持同时处理多个客户端简单server-client连接程序socket的常用选项使用 理解socket概念 一…

【Pytorch神经网络理论篇】 09 神经网络模块中的损失函数

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络理论篇】 10 优化器模块+退化学习率

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

HAProxy负载均衡原理及企业级实例部署haproxy集群

HAProxy是一种高效、可靠、免费的高可用及负载均衡解决方案&#xff0c;非常适合于高负载站点的七层数据请求。客户端通过HAProxy代理服务器获得站点页面&#xff0c;而代理服务器收到客户请求后根据负载均衡的规则将请求数据转发给后端真实服务器。 同一客户端访问服务器&…

【Pytorch神经网络实战案例】07 预测泰坦尼克号上生存的乘客

1 样本处理 1.1 载入样本代码---Titanic forecast.py&#xff08;第1部分&#xff09; import numpy as np import torch import torch.nn as nn import torch.nn.functional as F from scipy import stats import pandas as pd import matplotlib.pyplot as plt import os o…

基于sanic的服务使用celery完成动态修改定时任务

首先声明一下 考虑到celery目前和asyncio的不兼容性&#xff0c;协程任务需要转换为非异步的普通方法才能被当做task加入定时&#xff0c;并且celery和asyncio使用可能会带来预想不到的问题&#xff0c;在celery官方第二次承诺的6.0版本融合asyncio之前&#xff0c;需要慎重考虑…

Pyscript,使用Python编写前端脚本

介绍 Anaconda的CEO Peter Wang在前两个月的时候发布了Pyscript&#xff0c;实现了在HTML支持Python的使用&#xff0c;整个引用过程甚至不需要安装任何环境&#xff0c;只需要使用link和script标签即可引用实现Python在HTML中运行的功能&#xff0c;在HTML中也可以运行和使用…