Hello,
I found an (imo unnecessary) inconsistency in ByteTensor
handling between 0.3.1 and 0.4.0. You basically cannot assign a boolean into a ByteArray when indexing. Why? It’s very practical, but I am maybe missing part of the story here.
Consider the following ipython experiment:
torch 0.3.1
In [1]: import torch
In [2]: terminals = [False, False, True,
...: False, False, True,
...: False, False, False, True]
...: terminals_tensor = torch.ByteTensor(terminals)
...:
In [3]: terminals_tensor[0] = True
In [4]:
torch 0.4.0
In [9]: terminals = [False, False, True,
...: False, False, True,
...: False, False, False, True]
...: terminals_tensor = torch.ByteTensor(terminals)
...:
In [10]: terminals_tensor
Out[10]: tensor([ 0, 0, 1, 0, 0, 1, 0, 0, 0, 1], dtype=torch.uint8)
In [11]: terminals_tensor[0] = True
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-11-9cd5429faa79> in <module>()
----> 1 terminals_tensor[0] = True
TypeError: can't assign a bool to a torch.ByteTensor