diff --git a/README.md b/README.md index 06f320a..c910e28 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,10 @@ - Движок для создания нейронных сетей - Поддержка вычислений [на CPU](./src/tensor/cpu/) или [на GPU с использованием OpenCL](./src/tensor/opencl/) - - [Алгоритмы массового параллелизма на GPU](./src/tensor/opencl/kernels) для быстрых вычислений + - [Алгоритмы массового параллелизма на GPU](./src/tensor/opencl/kernels.hpp) для быстрых вычислений - Классические алгоритмы на CPU для возможности проверки - [Класс Tensor](./src/tensor/tensor.hpp) для работы с тензорами произвольной размерности +- [Пример обучения нейронной сети вычисления XOR на Python](./src/run.py) ## Forward & Back propogation - это путешествие в Мордор и обратно! diff --git a/src/run.py b/src/xor.py similarity index 96% rename from src/run.py rename to src/xor.py index a63f67f..cc7f4ae 100644 --- a/src/run.py +++ b/src/xor.py @@ -1,4 +1,4 @@ -import tensor.tensor as T +import tensor as T if (T.MODE == T.PLATFORM.OPENCL): T.init() @@ -45,7 +45,7 @@ class NN: lossVector = self.layers[len(self.layers) - 1].outputs - target - # print("loss", lossVector(T.FUNCTION.MSE)) + print("loss", lossVector(T.FUNCTION.MSE)) dAnl = lossVector(T.FUNCTION.MSE, True) for i in range(len(self.layers)-1, -1, -1): dZl = dAnl * \ @@ -55,7 +55,7 @@ class NN: dbl = dZl # dbl = dZl.sum(axis=1).reshape(dZl.shape[0], 1) dAnl = self.layers[i].weights.t() @ dZl - self.layers[i].weights.t() + print(self.layers[i].weights) self.layers[i].weights += (dWl * -0.3) self.layers[i].bias += (dbl * -0.3)