Is there a way to use index_add with the index argument being more that 1-dimensional ?
More especially, if I have a 2d-array that I want to fill not row by row or column by column, but element by element by specifying the 2d coordinates in which to add the desired amount in the 2d-array.
Example:
>>> to_be_filled = torch.zeros((2, 7))
>>> to_be_filled
torch.tensor([
    [0, 0, 0, 0, 0, 0, 0], 
    [0, 0, 0, 0, 0, 0, 0]
])
>>> index = torch.tensor([
    [0, 1], # adding 0.4
    [0, 2], # adding -1.4
    [0, 3], # adding -1.13
    [0, 6], # adding -1
    [1, 2], # adding 3
    [0, 1]  # adding 2
])
>>> values = torch.tensor([
    0.4,    # at coordinates (0, 1)
    -1.4,   # at coordinates (0, 2)
    -1.13,  # at coordinates (0, 3)
    -1,     # at coordinates (0, 6)
    3,      # at coordinates (1, 2)
    2       # at coordinates (0, 1)
])

I would like to do this like the following, but I have an error:
>>> to_be_filled.index_add_(0, index, values)
IndexError: index_add_(): Index is supposed to be a vector

Expected result:
torch.tensor([
    [0, 2.4, -1.4, -1.13, 0, 0, -1], 
    [0, 0, 3, 0, 0, 0, 0]
])

Is there a way to do this using pytorch operations?
Note: doing to_be_filled[index[:, 0], index[:, 1]] += values yields the following result:
torch.tensor([
    [0, 2, -1.4, -1.13, 0, 0, -1], 
    [0, 0, 3, 0, 0, 0, 0]
])

This approach does not accumulate when an index appear twice or more (notice that to_be_filled[0, 1] == 2 instead of 2.4)