响应式网站什么用电商平台要投资多少钱
目录
- pytorch的基本元素操作
 - 创建一个没有初始化的矩阵
 - 创建一个有初始化的矩阵
 - 创建一个全0矩阵并可指定数据元素类型为long
 - 直接通过数据创建张量
 - 通过已有的一个张量创建相同尺寸的新张量
 - 利用randn_like方法得到相同尺寸张量,并且采用随机初始化的方法为其赋值
 - 采用.size()方法来得到张量的形状
 - 加法
 - 切片操作
 - 改变张量的形状
 - 如果张量中只有一个元素,可以用item()将值取出,作为一个python number
 - torch tensor和numpy array之间的互相转换
 - 关于cuda tensor:tensor可以用.to()方法将其移动到任意设备上
 
pytorch的基本元素操作
from __future__ import print_function
import torch
 
创建一个没有初始化的矩阵
x=torch.empty(5,3)
print(x)
 

创建一个有初始化的矩阵
x=torch.rand(5,3)
print(x)
 


创建一个全0矩阵并可指定数据元素类型为long
x=torch.zeros(5,3,dtype=torch.long)
print(x)
 

直接通过数据创建张量
x=torch.tensor([2,5,3,5])
print(x)
 

通过已有的一个张量创建相同尺寸的新张量
x=x.new_ones(5,3,dtype=torch.double)
print(x)
 

利用randn_like方法得到相同尺寸张量,并且采用随机初始化的方法为其赋值
y=torch.randn_like(x,dtype=torch.float)
print(y)
 

采用.size()方法来得到张量的形状
print(x.size())
 

加法
第一种方法
x=torch.randn(5,3)
y=torch.randn(5,3)
print(x+y)
 
第二种方法
print(torch.add(x,y))
 
第三种方法
result=torch.empty(5,3)
torch.add(x,y,out=result)
print(result)
 
第四种方式:原地置换(执行的是y=y+x)
y.add_(x)
print(y)
 

 注意
 
切片操作
x[:,1]
 

改变张量的形状
x=torch.randn(4,4)
y=x.view(16)
z=x.view(-1,8)
x.size(),y.size(),z.size()
 

如果张量中只有一个元素,可以用item()将值取出,作为一个python number
x=torch.randn(1)
print(x,x.item())
 

torch tensor和numpy array之间的互相转换
a=torch.ones(5)
b=a.numpy()
a.add_(1)
print(a,b)
 

import numpy as np
a=np.ones(5)
b=torch.from_numpy(a)
np.add(a,1,out=a)
print(a,b)
 

 注意
 
关于cuda tensor:tensor可以用.to()方法将其移动到任意设备上
windows
 
 mac
if torch.backends.mps.is_available():device=torch.device('mps')#cpu上创建x,gpu上创建yx=torch.randn(1)y=torch.ones_like(x,device=device)x=x.to(device)#此时x,y都在gpu上z=x+yprint(z)#再将z转移到cpu上print(z.to('cpu',torch.float32))
