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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Pytorch_基础实战 ——(壹) -> 正文阅读

[人工智能]Pytorch_基础实战 ——(壹)

Pytorch_学习笔记

软件环境:

  • pytorch 1.10
  • pycharm
  • CUDA 10.2

提示:

使用配套教程体验更好:
youtobe教程(需要科学上网)有需要搬运联系我
配套代码:
gitee-pytorch

一些基础知识:

python的切片

一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、step)。当只有一个“:”时,默认第三个参数step=1;当一个“:”也没有时,start_index=end_index,表示切取start_index指定的那个元素。

Array[start_index:end_index:step]

step:正负数均可,其绝对值大小决定了切取数据时的‘‘步长”,而正负号决定了“切取方向”,**正表示“从左往右”**取值,**负表示“从右往左”**取值。当step省略时,默认为1,即从左往右以步长1取值。

start_index:表示起始索引(包含该索引对应值);该参数省略时,表示从对象“端点”开始取值,至于是从“起点”还是从“终点”开始,则由step参数的正负决定,step为正从“起点”开始,为负从“终点”开始。

end_index:表示终止索引(不包含该索引对应值);该参数省略时,表示一直取到数据“端点”,至于是到“起点”还是到“终点”,同样由step参数的正负决定,step为正时直到“终点”,为负时直到“起点”。

举例:

>>> array([0,1,2,3,4,5,6,7,8,9])
>>>a[-1:-6:-1]
>>>[9, 8, 7, 6, 5]
step=-1,从右往左取值,start_index=-1到end_index=-6同样是从右往左取值。

二维数组的切片

? 多维的切片是在中括号中用逗号运算符, 将不同维上的操作分开,分割开后每个维度上单独操作即可。

>>> array([[0,1,2,3,4,5,6,7,8,9],
       	   [0,1,2,3,4,5,6,7,8,9]])
>>> a[2:4,:]
array([[1,2,3],
       [1,2,3]])

Tensor:

随机生成一个张量

例子 A:

import torch
a = torch.rand(2,2);
print(x)
>>>
tensor([[0.8105, 0.5156],
        [0.4006, 0.7924]])

例子 B:

生成一个全是1的张量

b = torch.ones(2, 2)
print(b)
>> tensor([[1., 1.],
        [1., 1.]])

例子 C:

生成一个全是1的张量,且指定类型是double

c = torch.ones(2, 2, dtype=torch.double)
print(c)
>> tensor([[1., 1.],
        [1., 1.]], dtype=torch.float64)

例子 D:

通过Python List 生成一个张量

d = torch.tensor([2.5, 0.1, 1, 1])
print(d)
>> tensor([2.5000, 0.1000, 1.0000, 1.0000])

例子 E:

直接累加

e = torch.rand(2, 2)
print(e)
e.add_(b)
print(e)
>>
tensor([[0.6713, 0.2451],
        [0.5231, 0.4814]])

tensor([[1.6713, 1.2451],
        [1.5231, 1.4814]])

例子 E_2:

直接累乘

e.mul_(a)
print(e)
>> tensor([[1.3954, 0.9191],
        [0.4332, 0.2947]])

例子 F:

对 张量 进行切片

f = e[:1, 0].item()
print(f)
>> 1.3954157829284668

例子 G:

重构张量会根据重构大小自我调整 如下 2 * 2 变换为 1*4

g = e.view(4)
print(g)
>> tensor([1.3954, 0.9191, 0.4332, 0.2947])

例子 H:

将一个张量转换成numpy的一个list ,可以发现其指向的是同一个区域内存,修改其中一个另一个也会跟着改变。

h = g.numpy()
print(type(h))
print(h)
g.add_(1)
print(g)
print(h)
>>	<class 'numpy.ndarray'>
	[1.3954158  0.91908276 0.4331597  0.29474875]
	tensor([2.3954, 1.9191, 1.4332, 1.2947])
	[2.3954158 1.9190828 1.4331597 1.2947488]

例子 特殊:

torch 只支持在同一个设备内存下的运算,只有当默认情况下处于cpu状态的转换到GPU才可进行运算,转换是个很消耗时间的方法。值得一提的是numpy只允许在cpu内存运行。

if torch.cuda.is_available():
    #numpy only support cpu
    device = torch.device("cuda")
    h = torch.ones(5, device=device)
    i = torch.ones(5)
    i = i.to(device)
    i = i.add_(h)
    print(i)
>> tensor([2., 2., 2., 2., 2.], device='cuda:0')
#转换至CUDA

参考文献:

youtobe教程(需要科学上网)有需要搬运联系我

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:50:16  更:2022-02-06 13:51:04 
 
开发: 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年11日历 -2024/11/26 19:39:35-

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