IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> [PyTroch系列-7]:PyTorch基础 - 张量Tensor的算术运算 -> 正文阅读

[人工智能][PyTroch系列-7]:PyTorch基础 - 张量Tensor的算术运算

作者:recommend-item-box type_blog clearfix

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119428023


目录

?第1章?Tensor运算概述

1.1 概述

1.3 ?“in place“运算?

1.4?Tensor的广播机制: 不同维度的tensor实例运算

1.5 环境准备

1.6 算术运算概述:加、减、系数乘、系数除

第2章 加法运算:add

第3章 减法运算:subtract

第4章 乘法运算:multiply

第5章除法运算:divide

第6章 倒数运算:reciprocal()

第7章 幂运算:power()

第8章 广播机制




?第1章?Tensor运算概述

1.1 概述

PyTorch提供了大量的张量运算,基本上可以对标Numpy多维数组的运算,以支持对张量的各种复杂的运算。

这些操作运算中大多是对数组中每个元素执行相同的函数运算,并获得每个元素函数运算的结果序列,这些序列生成一个新的同维度的数组。

https://pytorch.org/docs/master/torch.html

?1.2 运算分类

(1)算术运算:加、减、系数乘、系数除

(2)函数运算:sin,cos

(3)取整运算:上取整、下取整

(4)统计运算:最大值、最小值、均值

(5)线性代数运算

1.3 ?“in place“运算?

“in place“运算不是某个特定的函数运算,而是每个函数都有自己的“in place“运算的版本。

xxx_():执行完该操作,直接修改tensor自身的值。

基本上,每个函数都有自己的in place版本。

torch.cos() =》torch.cos_()

torch.floor() =》torch.floor_()

1.4?Tensor的广播机制: 不同维度的tensor实例运算

1.5 环境准备

import numpy as np
import torch
 
print("Hello World")
print(torch.__version__)
print(torch.cuda.is_available())

1.6 算术运算概述:加、减、系数乘、系数除

PyTorch算术函数包含简单的加减乘除运算:?add()subtract()multiply()?和?divide()

算术运算后得到的结果依然是是相同维度的数组。

第2章 加法运算:add

#代码实例
a = torch.arange(9)
print ('原数据a:')
print (a)
print ('\n')

b = torch.arange(9)
print ('原数据b:')
print (b)
print ('\n')

print ('运算后数据:')
print (a+b)
print (torch.add(a,b))
print (a.add(b))
print ('\n')

print (a)
print ('\n')
输出结果为:

原数据a:
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8])


原数据b:
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8])


运算后数据:
tensor([ 0,  2,  4,  6,  8, 10, 12, 14, 16])
tensor([ 0,  2,  4,  6,  8, 10, 12, 14, 16])
tensor([ 0,  2,  4,  6,  8, 10, 12, 14, 16])


tensor([0, 1, 2, 3, 4, 5, 6, 7, 8])

第3章 减法运算:subtract

#代码实例

a = torch.arange(1,10)
print ('原数据a:')
print (a)
print ('\n')

b = torch.arange(0,9)
print ('原数据b:')
print (b)
print ('\n')

print ('运算后数据:')
print (a-b)
print (torch.sub(a,b))
print (a.sub(b))
print ('\n')

print (a)
print ('\n')
#输出结果

原数据a:
tensor([1, 2, 3, 4, 5, 6, 7, 8, 9])


原数据b:
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8])


运算后数据:
tensor([1, 1, 1, 1, 1, 1, 1, 1, 1])
tensor([1, 1, 1, 1, 1, 1, 1, 1, 1])
tensor([1, 1, 1, 1, 1, 1, 1, 1, 1])


tensor([1, 2, 3, 4, 5, 6, 7, 8, 9])

第4章 乘法运算:multiply

#代码实例

a = torch.Tensor([2,4,6,8,10,12])
print ('原数据a:')
print (a)
print ('\n')

b = torch.Tensor([2,4,6,8,10,12])
print ('原数据b:')
print (b)
print ('\n')

print ('运算后数据:')
print (a*b)
print (torch.multiply(a,b))
print (a.multiply(b))
print ('\n')

print (a)
print ('\n')
#输出结果

原数据a:
tensor([ 2.,  4.,  6.,  8., 10., 12.])


原数据b:
tensor([ 2.,  4.,  6.,  8., 10., 12.])


运算后数据:
tensor([  4.,  16.,  36.,  64., 100., 144.])
tensor([  4.,  16.,  36.,  64., 100., 144.])
tensor([  4.,  16.,  36.,  64., 100., 144.])


tensor([ 2.,  4.,  6.,  8., 10., 12.])

第5章除法运算:divide

#代码实例

a = torch.Tensor([2,4,6,8,10,12])
print ('原数据a:')
print (a)
print ('\n')

b = torch.Tensor([2,4,6,8,10,12])
print ('原数据b:')
print (b)
print ('\n')

print ('运算后数据:')
print (a/b)
print (torch.div(a,b))
print (a.div(b))
print ('\n')

print (a)
print ('\n')

#输出结果

原数据a:
tensor([ 2.,  4.,  6.,  8., 10., 12.])


原数据b:
tensor([ 2.,  4.,  6.,  8., 10., 12.])


运算后数据:
tensor([1., 1., 1., 1., 1., 1.])
tensor([1., 1., 1., 1., 1., 1.])
tensor([1., 1., 1., 1., 1., 1.])


tensor([ 2.,  4.,  6.,  8., 10., 12.])

第6章 倒数运算:reciprocal()

reciprocal() 函数返回参数逐元素的倒数。如?1/4?倒数为?4/1

#实例

a = torch.Tensor([2,4,5,8,10,20])
print("原数据a")
print(a)

#导数运算
print("运算数据")
print(1/a)
print(torch.reciprocal(a))
print(a.reciprocal())

print("原数据")
print (a)
#输出结果为:

原数据
tensor([ 2.,  4.,  5.,  8., 10., 20.])
倒数数据
tensor([0.5000, 0.2500, 0.2000, 0.1250, 0.1000, 0.0500])
tensor([0.5000, 0.2500, 0.2000, 0.1250, 0.1000, 0.0500])
tensor([0.5000, 0.2500, 0.2000, 0.1250, 0.1000, 0.0500])
原数据
tensor([ 2.,  4.,  5.,  8., 10., 20.])

第7章 幂运算:power()

power() 函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的

#实例

a = torch.Tensor([10,10,10,10,10])
b = torch.Tensor([1,2,3,4,5])
print("原数据a")
print(a)
print("原数据b")
print(b)

#导数运算
print("运算后数据")
#print(a^b)
print(torch.pow(a,b))
print(a.pow(b))

print("原数据a")
print (a)
#输出结果为:

原数据a
tensor([10., 10., 10., 10., 10.])
原数据b
tensor([1., 2., 3., 4., 5.])
运算后数据
tensor([1.0000e+01, 1.0000e+02, 1.0000e+03, 1.0000e+04, 1.0000e+05])
tensor([1.0000e+01, 1.0000e+02, 1.0000e+03, 1.0000e+04, 1.0000e+05])
原数据a
tensor([10., 10., 10., 10., 10.])

第8章 广播机制

当两个张量的维度不同,对他们进行运算时,需要对维度小的张量进行扩展,扩展成高纬度的张量,这个扩展的过程采用的是广播机制,即对低维度数据进行广播式(拷贝)扩展。

a = torch.arange(9).reshape(3,3)
print ('第一个数组:')
print (a)
print ('\n')

print ('第二个数组:')
b = np.array([10,10,10])  
print (b)
print ('\n')

print ('两个数组相加:')
print (np.add(a,b))
print ('\n')
输出结果:

第一个数组:
tensor([[0, 1, 2],
        [3, 4, 5],
        [6, 7, 8]])


第二个数组:
[10 10 10]


两个数组相加:
tensor([[10, 11, 12],
        [13, 14, 15],
        [16, 17, 18]])

作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119428023

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 09:37:50  更:2021-08-06 09:38:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 13:41:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码