小编Kon*_*kin的帖子

PyTorch 相当于`numpy.unpackbits`?

我正在 GPU 上训练神经网络。它使用了很多二进制输入功能。

由于将数据移入/移出 GPU 的成本很高,因此我正在寻找使初始表示更紧凑的方法。现在,我将我的特征编码为int8,将它们移到 GPU 上,然后扩展为float32

# create int8
features = torch.zeros(*dims, dtype=torch.int8)

# fill in some data (set some features to 1.)
…

# move int8 to GPU
features = features.to(device=cuda, non_blocking=True)

# expand int8 as float32
features = features.to(dtype=float32)
Run Code Online (Sandbox Code Playgroud)

现在,我正在寻找将这些二进制特征压缩为位而不是字节的方法。

NumPy 有函数packbitsunpackbits

>>> a = np.array([[2], [7], [23]], dtype=np.uint8)
>>> b = np.unpackbits(a, axis=1)
>>> b
array([[0, 0, 0, 0, 0, 0, 1, 0],
       [0, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

pytorch

7
推荐指数
1
解决办法
528
查看次数

标签 统计

pytorch ×1