pytorch中代码看不懂_pytorch第一天学习代码

这篇博客是PyTorch学习笔记的第一部分,主要介绍了如何使用PyTorch创建和操作矩阵(张量)。包括创建空矩阵、随机初始化矩阵、全零矩阵,以及通过已有张量创建新张量的方法。还展示了张量的加法操作、转置、尺寸获取、数值获取以及张量与numpy数组的相互转换。这些基础知识对于理解和使用PyTorch进行深度学习至关重要。
摘要由CSDN通过智能技术生成

专栏第一篇,学习pytorch的笔记,为了未来找工作做准备!加油!代码中有详细注释,方便阅读

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2019/12/28 16:32

# @Author : LZQ

# @Software: PyCharm

from __future__ import print_function

import torch

# 构造一个5x3矩阵,不初始化

Mextri53=torch.empty(5,3)

print(Mextri53)

# 构造一个随机初始化的矩阵

Mextri53_2 = torch.rand(5, 3)

print(Mextri53_2)

# 构造一个矩阵全为 0,而且数据类型是 long.

Mextri53_3 = torch.zeros(5, 3, dtype=torch.long)

print(Mextri53_3)

# 构造一个张量,直接使用数据:

Mextri53_4 = torch.tensor([5.5, 3])

print(Mextri53_4)

# 创建一个tensor基于已经存在的tensor

Mextri53_5=Mextri53_4.new_ones(5,3,dtype=torch.double)

print(Mextri53_5)

Mextri53_6=torch.randn_like(Mextri53_5,dtype=torch.float)

print(Mextri53_6)

# 获取维度信息 torch.Size是一个元组,所以它支持左右的元组操作。

print(Mextri53_6.size())

Mextri53_y = torch.rand(5, 3)

print(Mextri53_6)

print(Mextri53_y)

# 按照矩阵的数位置相加 比如 ai+bi aj+bj + 和 add相同

print(Mextri53_6 + Mextri53_y)

print(torch.add(Mextri53_6,Mextri53_y))

# 初始化一个5行3列的空数组(数组元素是随机默认的,不是null或0)

x=torch.rand(5,3)

y=x.new_ones(5,3,dtype=float)

print(x)

print(y)

result = torch.empty(5,3)

torch.add(x,y,out=result)

print(result)#输出add的结果

print(result[0])#输出result的第一行 tensor([1.5053, 1.0032, 1.8332])

print(result[0][0])#输出result的第一行的第一个元素 tensor(1.5053)

print(result.size())#输出尺寸:torch.Size([5, 3])

# 加法

x=torch.rand(5,3)

y=x.new_ones(5,3,dtype=float)

print(y)

y.add_(x) #输出x+y的结果

print(y)

x=torch.rand(5,3)#均匀分布0-1随机数

z=torch.randn(5,3)#正态分布随机数

y=x.new_ones(5,3,dtype=float)

print(x)

print(z)

# 改变大小:如果你想改变一个 tensor 的大小或者形状,你可以使用 torch.view

x=torch.randn(4,4)

y1=x.view(16) # 6元素向量

y2=x.view(1,16) # 1行16列向量

z=x.view(-1,8) #2行8列,倒数8个数为一列

print(x)

print(y1)

print(y2)

print(z)

print(x.size(), y1.size(),y2.size(), z.size())

# 获取tensor的值,用.item()

x = torch.randn(1)

print(x)

print(x.item())

y=torch.randn(4,4)

print(y)

for i in range(4):

for j in range(4):

print(y[i][j].item())

#x.t_() x 矩阵的转置

x=torch.randn(4,4)

print(x)

x.t_()

print(x)

y=x.numpy() #转换成numpy类型

print(y)

import numpy as np

# Tensor和numpy对象共享内存,所以他们之间的转换很快,而且几乎不会消耗什么资源。但这也意味着,如果其中一个变了,另外一个也会随之改变。

a = np.ones(5)

b=torch.from_numpy(a)

print(a)

print(b)

b.add_(1)

print(a)

print(b)

import numpy as np

# 只有一个元素的tensor也可以调用`tensor.item()`

scalar =torch.tensor(1)

print(scalar.item())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值