pytorch写float类型tensor转换成blob
时间: 2023-11-30 21:04:53 浏览: 79
在 PyTorch 中,可以使用 `.numpy()` 方法将 tensor 转换为 NumPy 数组,然后使用 `tobytes()` 方法将 NumPy 数组转换为二进制数据,最后可以将二进制数据写入到文件或者发送到其他系统。
下面是一个示例代码,将 float 类型的 tensor 转换为二进制数据:
```python
import torch
# 创建一个 float 类型的 tensor
x = torch.tensor([1.0, 2.0, 3.0])
# 将 tensor 转换为 NumPy 数组
x_np = x.numpy()
# 将 NumPy 数组转换为二进制数据
blob = x_np.tobytes()
print(blob)
```
输出结果为:
```
b'\x00\x00\x80?\x00\x00\x00@\x00\x00@@'
```
如果要将二进制数据转换回 tensor,可以使用以下代码:
```python
import torch
import numpy as np
# 读取二进制数据
blob = b'\x00\x00\x80?\x00\x00\x00@\x00\x00@@'
# 将二进制数据转换为 NumPy 数组
x_np = np.frombuffer(blob, dtype=np.float32)
# 将 NumPy 数组转换为 tensor
x = torch.from_numpy(x_np)
print(x)
```
输出结果为:
```
tensor([1., 2., 3.])
```
阅读全文