Hi ptrblck
Ok, here is an example of the sizes:

array1: [3000, 10000]
index1: [369]
index2: [121]
index3: [3, 1]
array2: [369,1,121]

array1[index1][:,index2+index3]-=array2
If I print the left-hand-side and right hand side I get this

array1[index1][:,index2+index3]:  torch.Size([369, 3, 121])

and

array2:  torch.Size([369, 1, 121])

I should also mention that I tried .sub (and .sub_) and .add (and .add_) without success.  And if I convert all these matrices to numpy arrays this broadcast subtraction seem to then work in place as I intended originally.
EDIT: I collapsed index3: to a single value, but the inplace subtraction doesn’t seem to work.