1.将numpy矩阵转换为Tensor张量
sub_ts = torch.from_numpy(sub_img) #sub_img为numpy类型
2.将Tensor张量转化为numpy矩阵
sub_np1 = sub_ts.numpy() #sub_ts为tensor张量
3.将numpy转换为Variable
sub_va = Variable(torch.from_numpy(sub_img))
4.将Variable张量转化为numpy
sub_np2 = sub_va.data.numpy()
应用实例1
# coding=utf-8
import numpy as np
import torch
"""Pytorch中tensor了解"""
def just_try():
# Tensor可以认为是一个高维数组,和numpy相似,但tensor可以用GPU加速
x = torch.FloatTensor(5, 3) # [torch.FloatTensor of size 5x3],预先分配空间
print('x: {}'.format(x))
print('x.size(): {}'.format(x.size())) # torch.Size([5, 3], torch.Size是tuple对象的子类,支持tuple的所有操作
y_tensor_gpu = x.cuda() # 转化为在GPU上的tensor
print('y_tensor_gpu: {}'.format(y_tensor_gpu))
def multiple_add():
x = torch.FloatTensor(3, 2)
y = torch.FloatTensor(3, 2)
# 第一种加法
result_1 = x + y
# 第二种加法
result_2 = torch.add(x, y)
# 第三种加法
result_3 = torch.FloatTensor(3, 2)
torch.add(x, y, out=result_3)
print('result_1: {}'.format(result_1))
print('result_1.size():{}'.format(result_1.size()))
print('result_2: {}'.format(result_2))
print('result_2.size():{}'.format(result_2.s