感谢大家的观看
使用 Tensor.numpy 函数可以将张量转换为 ndarray 数组,但是共享内存,可以使用 copy 函数避免共享。
data_tensor = torch.tensor([2, 3, 4])
# 使用张量对象中的 numpy 函数进行转换
data_numpy = data_tensor.numpy()
print(type(data_tensor))
print(type(data_numpy))
# 修改其中的一个,另外一个也会发生改变!
# data_tensor[0] = 100
data_numpy[0] = 100
print(data_tensor)
print(data_numpy)
我们可以通过对象拷贝避免共享内存:
data_tensor = torch.tensor([2, 3, 4])
# 使用张量对象中的 numpy 函数进行转换
data_numpy = data_tensor.numpy().copy()
print(type(data_tensor))
print(type(data_numpy))
# data_tensor[0] = 100
data_numpy[0] = 100
print(data_tensor)
print(data_numpy)
def test01():
data_numpy = np.array([2, 3, 4])
data_tensor = torch.from_numpy(data_numpy)
# 共享内存
# data_numpy[0] = 100
data_tensor[0] = 100
print(data_tensor)
print(data_numpy)
# 使用 torch.tensor 函数
def test02():
data_numpy = np.array([2, 3, 4])
data_tensor = torch.tensor(data_numpy)
# 不共享内存
# data_numpy[0] = 100
data_tensor[0] = 100
print(data_tensor)
print(data_numpy)
对于只有一个元素的张量(shape没有限制,元素只有一个),使用 item 方法将该值从张量中提取出来。