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