一、简介
在深度学习中,会用到各种各样的数据类型。有python中常用的list,使用numpy这个科学计算库时的numpy.ndarray,还有使用pytorch框架时的torch.Tensor。
使用数据时,经常需要进行各种数据形式之间的转换。
二、代码实践
1.list和numpy.ndarray之间的转化
# coding:utf-8
import numpy as np
import torch
# list和numpy.ndarray之间的转化
x_one = [[1, 2, 3], [4, 5, 6]]
print("x_one的数据为\n", x_one)
print("x_one的数据类型为", type(x_one))
# 将list数据转化为numpy.ndarray形式
x_two = np.array(x_one)
print("x_two的数据为\n", x_two)
print("x_two的数据类型为", type(x_two))
# 将numpy.ndarray转化为lisy形式
x_three = x_two.tolist()
print("x_three的数据为\n", x_three)
print("x_three的数据类型为", type(x_three))
2.list与tensor之间的转化
# coding:utf-8
import torch
x_one = [1, 2, 3, 4, 5]
print("x_one的数据为", x_one)
print("x_one的数据类型为", type(x_one))
# list转torch.Tensor
x_two = torch.Tensor(x_one)
print("x_two的数据为", x_two)
print("x_two的数据类型为", type(x_two))
# torch.Tensor转list
x_three = x_two.tolist()
print("x_three的数据为", x_three)
print("x_three的数据类型为", type(x_three))
3.numpy.ndarray和tensor之间的转化
# coding:utf-8
import torch
import numpy as np
# numpy.ndarray
# 造数据
data_one = np.arange(6).reshape(2, 3)
print("data_one的数据为\n", data_one)
print("data_one的数据类型为", type(data_one))
print("-" * 100)
# numpy.ndarray转化为tensor
data_two = torch.from_numpy(data_one)
print("data_two的数据为\n", data_two)
print("data_two的数据类型为", type(data_two))
print("#" * 100)
# tensor转化为numpy.ndarray
data_three = data_two.numpy()
print("data_three的数据为\n", data_three)
print("data_three的数据类型为", type(data_three))