sg314:

input_x[1][1] = fc(input_x[1][1])


You are doing exactly what I said that doesn’t work…



 sg314:

feat[0][0] = 9


This is bound to fail. It is first doing a slicing and getting feat[0], and then do a __setitem__. But after you did the slicing, you already get two objects sharing the same storage (feat and feat[0]), both in scope, so it doesn’t work. feat[0, 0] = 9 works as expected.