Traceback (most recent call last):
File "D:/My Documents/PycharmProjects/tst/tst120.py", line 59, in <module>
print(network.forwardResult())
File "D:/My Documents/PycharmProjects/tst/tst120.py", line 47, in forwardResult
x.calculateNeurons()
File "D:/My Documents/PycharmProjects/tst/tst120.py", line 38, in calculateNeurons
x.selfValueDefine()
File "D:/My Documents/PycharmProjects/tst/tst120.py", line 23, in selfValueDefine
self.selfValue = self.sigmoid()
File "D:/My Documents/PycharmProjects/tst/tst120.py", line 19, in sigmoid
vectorsResult = self.counterVectors()
File "D:/My Documents/PycharmProjects/tst/tst120.py", line 15, in counterVectors
counter+= self.previousLayer.getNeuronValueByNumber(x) * self.weigthsFromPreviousLayer[x]
TypeError: 'set' object is not subscriptable
А пришел set. Откуда - по коду не видно. Но, даже, если ожидается typing.Mapping, то использование индексов - это не Pythonic way. Там вообще в результате одна строчка кода должна остаться вида; counter = sum([a * b for a, b in zip(a, b])
Vladius97, По поводу первого кода из вашего комментария:
1) Вы не там (пере)инициализируете переменную S (надо перед самым внутренним циклом).
2) Вы печатаете не переменную S, а элемент матрицы А (который не изменялся).
3) Вы выводите результат на печать в теле самого внутреннего цикла, а надо после его окончания.
И, да, после этих исправлений будут напечатаны все элементы квадрата матрицы A.
А вот если бы вы после (вместо) печати дополнительно переприсваивали элемент матрицы А[z][j], то все бы испортили. Умножение матриц, а матрица в квадрате - это умножение матрицы на себя - это не атомарная операция. Все элементы исходной матрицы используются не один раз. Не надо их портить.
Даже если все множества на списки заменить.