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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-23 06:34   325   0

专栏第一篇,学习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())

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP