From f1e5b60b9e509ddae767fc7a01417a4af9b4ec34 Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Tue, 18 Apr 2023 13:26:06 +0300 Subject: [PATCH 01/13] NN: unmodified "impl NN from scratch" toy example --- e2e/nn_from_scratch/nn.py | 163 ++++++++++++++++++++++++++++++++++++++ e2e/tests.md | 8 ++ 2 files changed, 171 insertions(+) create mode 100644 e2e/nn_from_scratch/nn.py create mode 100644 e2e/tests.md diff --git a/e2e/nn_from_scratch/nn.py b/e2e/nn_from_scratch/nn.py new file mode 100644 index 00000000..45d1855a --- /dev/null +++ b/e2e/nn_from_scratch/nn.py @@ -0,0 +1,163 @@ +# from https://www.geeksforgeeks.org/implementation-of-neural-network-from-scratch-using-numpy/ + + +import numpy as np +#import torch_np as np + +# Creating data set + +# A +a =[0, 0, 1, 1, 0, 0, + 0, 1, 0, 0, 1, 0, + 1, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 1] +# B +b =[0, 1, 1, 1, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 1, 1, 1, 0, + 0, 1, 0, 0, 1, 0, + 0, 1, 1, 1, 1, 0] +# C +c =[0, 1, 1, 1, 1, 0, + 0, 1, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 0] + +# Creating labels +y =[[1, 0, 0], + [0, 1, 0], + [0, 0, 1]] + + +# converting data and labels into numpy array + +""" +Convert the matrix of 0 and 1 into one hot vector +so that we can directly feed it to the neural network, +these vectors are then stored in a list x. +""" + +x =[np.array(a).reshape(1, 30), np.array(b).reshape(1, 30), + np.array(c).reshape(1, 30)] + + +# Labels are also converted into NumPy array +y = np.array(y) + + +print(x, "\n\n", y) + + +# activation function + +def sigmoid(x): + return(1/(1 + np.exp(-x))) + +# Creating the Feed forward neural network +# 1 Input layer(1, 30) +# 1 hidden layer (1, 5) +# 1 output layer(3, 3) + +def f_forward(x, w1, w2): + # hidden + z1 = x.dot(w1)# input from layer 1 + a1 = sigmoid(z1)# out put of layer 2 + + # Output layer + z2 = a1.dot(w2)# input of out layer + a2 = sigmoid(z2)# output of out layer + return(a2) + +# initializing the weights randomly +def generate_wt(x, y): + l =[] + for i in range(x * y): + l.append(np.random.randn()) + return(np.array(l).reshape(x, y)) + +# for loss we will be using mean square error(MSE) +def loss(out, Y): + s =(np.square(out-Y)) + s = np.sum(s)/len(y) + return(s) + +# Back propagation of error +def back_prop(x, y, w1, w2, alpha): + + # hidden layer + z1 = x.dot(w1)# input from layer 1 + a1 = sigmoid(z1)# output of layer 2 + + # Output layer + z2 = a1.dot(w2)# input of out layer + a2 = sigmoid(z2)# output of out layer + # error in output layer + d2 =(a2-y) + d1 = np.multiply((w2.dot((d2.transpose()))).transpose(), + (np.multiply(a1, 1-a1))) + + # Gradient for w1 and w2 + w1_adj = x.transpose().dot(d1) + w2_adj = a1.transpose().dot(d2) + + # Updating parameters + w1 = w1-(alpha*(w1_adj)) + w2 = w2-(alpha*(w2_adj)) + + return(w1, w2) + +def train(x, Y, w1, w2, alpha = 0.01, epoch = 10): + acc =[] + losss =[] + for j in range(epoch): + l =[] + for i in range(len(x)): + out = f_forward(x[i], w1, w2) + l.append((loss(out, Y[i]))) + w1, w2 = back_prop(x[i], y[i], w1, w2, alpha) + print("epochs:", j + 1, "======== acc:", (1-(sum(l)/len(x)))*100) + acc.append((1-(sum(l)/len(x)))*100) + losss.append(sum(l)/len(x)) + return(acc, losss, w1, w2) + +def predict(x, w1, w2): + Out = f_forward(x, w1, w2) + maxm = 0 + k = 0 + for i in range(len(Out[0])): + if(maxm Date: Tue, 18 Apr 2023 13:32:12 +0300 Subject: [PATCH 02/13] NN: seed the generator --- e2e/nn_from_scratch/nn.py | 3 + e2e/nn_from_scratch/outp.original.txt | 175 ++++++++++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 e2e/nn_from_scratch/outp.original.txt diff --git a/e2e/nn_from_scratch/nn.py b/e2e/nn_from_scratch/nn.py index 45d1855a..28fefd47 100644 --- a/e2e/nn_from_scratch/nn.py +++ b/e2e/nn_from_scratch/nn.py @@ -72,6 +72,9 @@ def f_forward(x, w1, w2): # initializing the weights randomly def generate_wt(x, y): + + np.random.seed(1234) + l =[] for i in range(x * y): l.append(np.random.randn()) diff --git a/e2e/nn_from_scratch/outp.original.txt b/e2e/nn_from_scratch/outp.original.txt new file mode 100644 index 00000000..5e66d21c --- /dev/null +++ b/e2e/nn_from_scratch/outp.original.txt @@ -0,0 +1,175 @@ +[array([[0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, + 0, 1, 1, 0, 0, 0, 0, 1]]), array([[0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, + 1, 0, 0, 1, 1, 1, 1, 0]]), array([[0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 1, 1, 1, 1, 0]])] + + [[1 0 0] + [0 1 0] + [0 0 1]] +[[ 4.71435164e-01 -1.19097569e+00 1.43270697e+00 -3.12651896e-01 + -7.20588733e-01] + [ 8.87162940e-01 8.59588414e-01 -6.36523504e-01 1.56963721e-02 + -2.24268495e+00] + [ 1.15003572e+00 9.91946022e-01 9.53324128e-01 -2.02125482e+00 + -3.34077366e-01] + [ 2.11836468e-03 4.05453412e-01 2.89091941e-01 1.32115819e+00 + -1.54690555e+00] + [-2.02646325e-01 -6.55969344e-01 1.93421376e-01 5.53438911e-01 + 1.31815155e+00] + [-4.69305285e-01 6.75554085e-01 -1.81702723e+00 -1.83108540e-01 + 1.05896919e+00] + [-3.97840228e-01 3.37437654e-01 1.04757857e+00 1.04593826e+00 + 8.63717292e-01] + [-1.22091575e-01 1.24712954e-01 -3.22794806e-01 8.41674713e-01 + 2.39096052e+00] + [ 7.61995878e-02 -5.66445930e-01 3.61419367e-02 -2.07497760e+00 + 2.47792200e-01] + [-8.97156784e-01 -1.36794833e-01 1.82891913e-02 7.55413982e-01 + 2.15268581e-01] + [ 8.41008795e-01 -1.44581008e+00 -1.40197328e+00 -1.00918200e-01 + -5.48242449e-01] + [-1.44619508e-01 3.54020332e-01 -3.55130253e-02 5.65738306e-01 + 1.54565880e+00] + [-9.74236334e-01 -7.03448771e-02 3.07968855e-01 -2.08498763e-01 + 1.03380073e+00] + [-2.40045363e+00 2.03060362e+00 -1.14263129e+00 2.11883387e-01 + 7.04720624e-01] + [-7.85435212e-01 4.62059737e-01 7.04228225e-01 5.23507968e-01 + -9.26254314e-01] + [ 2.00784295e+00 2.26962542e-01 -1.15265911e+00 6.31979446e-01 + 3.95126867e-02] + [ 4.64392325e-01 -3.56351666e+00 1.32110562e+00 1.52630552e-01 + 1.64529543e-01] + [-4.30095691e-01 7.67368736e-01 9.84919842e-01 2.70835849e-01 + 1.39198619e+00] + [ 7.98423130e-02 -3.99964581e-01 -1.02785056e+00 -5.84718211e-01 + 8.16593927e-01] + [-8.19470518e-02 -3.44766014e-01 5.28288145e-01 -1.06898878e+00 + -5.11881309e-01] + [ 2.91205360e-01 5.66533696e-01 5.03591759e-01 2.85295685e-01 + 4.84288113e-01] + [ 1.36348151e+00 -7.81105284e-01 -4.68017666e-01 1.22457436e+00 + -1.28110828e+00] + [ 8.75475504e-01 -1.71071532e+00 -4.50765103e-01 7.49163806e-01 + -2.03932866e-01] + [-1.82175412e-01 6.80656004e-01 -1.81849899e+00 4.70716353e-02 + 3.94844209e-01] + [-2.48432054e-01 -6.17706648e-01 -6.82883996e-01 4.36257604e-01 + -1.70301277e+00] + [ 3.93710599e-01 -4.79324004e-01 -2.99016293e-01 6.94103288e-01 + 6.78629674e-01] + [ 2.39555995e-01 1.51226629e-01 8.16127233e-01 1.89353447e+00 + 6.39632763e-01] + [-9.62028832e-01 -2.08526564e+00 1.93024677e+00 -1.73534887e+00 + 1.21038370e+00] + [ 7.97435419e-01 -3.79810784e-01 7.02562224e-01 -8.50346272e-01 + 1.17681245e+00] + [-5.24336103e-01 7.00907731e-01 9.84188071e-01 -1.21728409e-01 + 2.36576863e+00]] + + [[ 0.47143516 -1.19097569 1.43270697] + [-0.3126519 -0.72058873 0.88716294] + [ 0.85958841 -0.6365235 0.01569637] + [-2.24268495 1.15003572 0.99194602] + [ 0.95332413 -2.02125482 -0.33407737]] +epochs: 1 ======== acc: 60.397464239970745 +epochs: 2 ======== acc: 65.16607352187924 +epochs: 3 ======== acc: 69.33556347717358 +epochs: 4 ======== acc: 73.23383836001963 +epochs: 5 ======== acc: 76.90457188297475 +epochs: 6 ======== acc: 79.95034419935922 +epochs: 7 ======== acc: 82.15321758187899 +epochs: 8 ======== acc: 83.70559823822028 +epochs: 9 ======== acc: 84.85366362556562 +epochs: 10 ======== acc: 85.75623953914763 +epochs: 11 ======== acc: 86.50276822676348 +epochs: 12 ======== acc: 87.1438739926133 +epochs: 13 ======== acc: 87.70949546764676 +epochs: 14 ======== acc: 88.21827106389192 +epochs: 15 ======== acc: 88.68239709581877 +epochs: 16 ======== acc: 89.11022921605081 +epochs: 17 ======== acc: 89.50773333141358 +epochs: 18 ======== acc: 89.87932787182739 +epochs: 19 ======== acc: 90.22839150528551 +epochs: 20 ======== acc: 90.55758018256115 +epochs: 21 ======== acc: 90.86903178760784 +epochs: 22 ======== acc: 91.1645024000999 +epochs: 23 ======== acc: 91.44545967179583 +epochs: 24 ======== acc: 91.71314852260983 +epochs: 25 ======== acc: 91.96863847548552 +epochs: 26 ======== acc: 92.21285849630445 +epochs: 27 ======== acc: 92.44662312930885 +epochs: 28 ======== acc: 92.67065243988633 +epochs: 29 ======== acc: 92.88558746954092 +epochs: 30 ======== acc: 93.09200238600286 +epochs: 31 ======== acc: 93.2904141658033 +epochs: 32 ======== acc: 93.48129041240806 +epochs: 33 ======== acc: 93.66505575077926 +epochs: 34 ======== acc: 93.84209712459729 +epochs: 35 ======== acc: 94.01276823987673 +epochs: 36 ======== acc: 94.17739333836174 +epochs: 37 ======== acc: 94.33627043931217 +epochs: 38 ======== acc: 94.48967415468044 +epochs: 39 ======== acc: 94.63785815722387 +epochs: 40 ======== acc: 94.78105736172327 +epochs: 41 ======== acc: 94.919489864726 +epochs: 42 ======== acc: 95.05335867706292 +epochs: 43 ======== acc: 95.1828532750349 +epochs: 44 ======== acc: 95.30815099005055 +epochs: 45 ======== acc: 95.42941825215652 +epochs: 46 ======== acc: 95.54681169995763 +epochs: 47 ======== acc: 95.66047916754631 +epochs: 48 ======== acc: 95.77056055796724 +epochs: 49 ======== acc: 95.87718861218542 +epochs: 50 ======== acc: 95.98048958229766 +epochs: 51 ======== acc: 96.08058381765971 +epochs: 52 ======== acc: 96.1775862725662 +epochs: 53 ======== acc: 96.2716069440289 +epochs: 54 ======== acc: 96.36275124800035 +epochs: 55 ======== acc: 96.45112034205944 +epochs: 56 ======== acc: 96.53681140211947 +epochs: 57 ======== acc: 96.61991786015143 +epochs: 58 ======== acc: 96.700529609269 +epochs: 59 ======== acc: 96.7787331818261 +epochs: 60 ======== acc: 96.85461190546667 +epochs: 61 ======== acc: 96.92824604136675 +epochs: 62 ======== acc: 96.99971290824418 +epochs: 63 ======== acc: 97.06908699509795 +epochs: 64 ======== acc: 97.13644006508726 +epochs: 65 ======== acc: 97.20184125247548 +epochs: 66 ======== acc: 97.26535715414771 +epochs: 67 ======== acc: 97.32705191685933 +epochs: 68 ======== acc: 97.38698732108234 +epochs: 69 ======== acc: 97.44522286208172 +epochs: 70 ======== acc: 97.50181582866644 +epochs: 71 ======== acc: 97.55682137991472 +epochs: 72 ======== acc: 97.61029262006241 +epochs: 73 ======== acc: 97.66228067166134 +epochs: 74 ======== acc: 97.71283474705675 +epochs: 75 ======== acc: 97.76200221819205 +epochs: 76 ======== acc: 97.80982868472454 +epochs: 77 ======== acc: 97.85635804042082 +epochs: 78 ======== acc: 97.90163253779464 +epochs: 79 ======== acc: 97.94569285094968 +epochs: 80 ======== acc: 97.98857813659338 +epochs: 81 ======== acc: 98.0303260931946 +epochs: 82 ======== acc: 98.07097301826602 +epochs: 83 ======== acc: 98.11055386376044 +epochs: 84 ======== acc: 98.14910228958009 +epochs: 85 ======== acc: 98.18665071520542 +epochs: 86 ======== acc: 98.22323036945903 +epochs: 87 ======== acc: 98.25887133842699 +epochs: 88 ======== acc: 98.29360261156637 +epochs: 89 ======== acc: 98.32745212603373 +epochs: 90 ======== acc: 98.36044680927326 +epochs: 91 ======== acc: 98.39261261990781 +epochs: 92 ======== acc: 98.42397458697837 +epochs: 93 ======== acc: 98.45455684758059 +epochs: 94 ======== acc: 98.48438268294754 +epochs: 95 ======== acc: 98.5134745530303 +epochs: 96 ======== acc: 98.5418541296273 +epochs: 97 ======== acc: 98.5695423281142 +epochs: 98 ======== acc: 98.59655933782588 +epochs: 99 ======== acc: 98.62292465114106 +epochs: 100 ======== acc: 98.64865709132037 +Image is of letter B. From 68d59b97d70b47510de32607a78bae6b56937ffa Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Tue, 18 Apr 2023 13:34:27 +0300 Subject: [PATCH 03/13] NN: use torch_np + random variates from original NumPy for repro --- e2e/nn_from_scratch/nn.py | 8 +- e2e/nn_from_scratch/outp.tnp.txt | 146 +++++++++++++++++++++++++++++++ e2e/tests.md | 8 ++ 3 files changed, 158 insertions(+), 4 deletions(-) create mode 100644 e2e/nn_from_scratch/outp.tnp.txt diff --git a/e2e/nn_from_scratch/nn.py b/e2e/nn_from_scratch/nn.py index 28fefd47..c6a4a9b0 100644 --- a/e2e/nn_from_scratch/nn.py +++ b/e2e/nn_from_scratch/nn.py @@ -1,8 +1,8 @@ # from https://www.geeksforgeeks.org/implementation-of-neural-network-from-scratch-using-numpy/ -import numpy as np -#import torch_np as np +import numpy as _np +import torch_np as np # Creating data set @@ -73,11 +73,11 @@ def f_forward(x, w1, w2): # initializing the weights randomly def generate_wt(x, y): - np.random.seed(1234) + _np.random.seed(1234) l =[] for i in range(x * y): - l.append(np.random.randn()) + l.append(_np.random.randn()) return(np.array(l).reshape(x, y)) # for loss we will be using mean square error(MSE) diff --git a/e2e/nn_from_scratch/outp.tnp.txt b/e2e/nn_from_scratch/outp.tnp.txt new file mode 100644 index 00000000..615f2625 --- /dev/null +++ b/e2e/nn_from_scratch/outp.tnp.txt @@ -0,0 +1,146 @@ +[array_w([[0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 1]]), array_w([[0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, + 0, 1, 1, 1, 1, 0]]), array_w([[0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 0]])] + + array_w([[1, 0, 0], + [0, 1, 0], + [0, 0, 1]]) +array_w([[ 4.7144e-01, -1.1910e+00, 1.4327e+00, -3.1265e-01, -7.2059e-01], + [ 8.8716e-01, 8.5959e-01, -6.3652e-01, 1.5696e-02, -2.2427e+00], + [ 1.1500e+00, 9.9195e-01, 9.5332e-01, -2.0213e+00, -3.3408e-01], + [ 2.1184e-03, 4.0545e-01, 2.8909e-01, 1.3212e+00, -1.5469e+00], + [-2.0265e-01, -6.5597e-01, 1.9342e-01, 5.5344e-01, 1.3182e+00], + [-4.6931e-01, 6.7555e-01, -1.8170e+00, -1.8311e-01, 1.0590e+00], + [-3.9784e-01, 3.3744e-01, 1.0476e+00, 1.0459e+00, 8.6372e-01], + [-1.2209e-01, 1.2471e-01, -3.2279e-01, 8.4167e-01, 2.3910e+00], + [ 7.6200e-02, -5.6645e-01, 3.6142e-02, -2.0750e+00, 2.4779e-01], + [-8.9716e-01, -1.3679e-01, 1.8289e-02, 7.5541e-01, 2.1527e-01], + [ 8.4101e-01, -1.4458e+00, -1.4020e+00, -1.0092e-01, -5.4824e-01], + [-1.4462e-01, 3.5402e-01, -3.5513e-02, 5.6574e-01, 1.5457e+00], + [-9.7424e-01, -7.0345e-02, 3.0797e-01, -2.0850e-01, 1.0338e+00], + [-2.4005e+00, 2.0306e+00, -1.1426e+00, 2.1188e-01, 7.0472e-01], + [-7.8544e-01, 4.6206e-01, 7.0423e-01, 5.2351e-01, -9.2625e-01], + [ 2.0078e+00, 2.2696e-01, -1.1527e+00, 6.3198e-01, 3.9513e-02], + [ 4.6439e-01, -3.5635e+00, 1.3211e+00, 1.5263e-01, 1.6453e-01], + [-4.3010e-01, 7.6737e-01, 9.8492e-01, 2.7084e-01, 1.3920e+00], + [ 7.9842e-02, -3.9996e-01, -1.0279e+00, -5.8472e-01, 8.1659e-01], + [-8.1947e-02, -3.4477e-01, 5.2829e-01, -1.0690e+00, -5.1188e-01], + [ 2.9121e-01, 5.6653e-01, 5.0359e-01, 2.8530e-01, 4.8429e-01], + [ 1.3635e+00, -7.8111e-01, -4.6802e-01, 1.2246e+00, -1.2811e+00], + [ 8.7548e-01, -1.7107e+00, -4.5077e-01, 7.4916e-01, -2.0393e-01], + [-1.8218e-01, 6.8066e-01, -1.8185e+00, 4.7072e-02, 3.9484e-01], + [-2.4843e-01, -6.1771e-01, -6.8288e-01, 4.3626e-01, -1.7030e+00], + [ 3.9371e-01, -4.7932e-01, -2.9902e-01, 6.9410e-01, 6.7863e-01], + [ 2.3956e-01, 1.5123e-01, 8.1613e-01, 1.8935e+00, 6.3963e-01], + [-9.6203e-01, -2.0853e+00, 1.9302e+00, -1.7353e+00, 1.2104e+00], + [ 7.9744e-01, -3.7981e-01, 7.0256e-01, -8.5035e-01, 1.1768e+00], + [-5.2434e-01, 7.0091e-01, 9.8419e-01, -1.2173e-01, 2.3658e+00]], + dtype=float64) + + array_w([[ 0.4714, -1.1910, 1.4327], + [-0.3127, -0.7206, 0.8872], + [ 0.8596, -0.6365, 0.0157], + [-2.2427, 1.1500, 0.9919], + [ 0.9533, -2.0213, -0.3341]], dtype=float64) +epochs: 1 ======== acc: array_w(60.3975, dtype=float64) +epochs: 2 ======== acc: array_w(65.1661, dtype=float64) +epochs: 3 ======== acc: array_w(69.3356, dtype=float64) +epochs: 4 ======== acc: array_w(73.2338, dtype=float64) +epochs: 5 ======== acc: array_w(76.9046, dtype=float64) +epochs: 6 ======== acc: array_w(79.9503, dtype=float64) +epochs: 7 ======== acc: array_w(82.1532, dtype=float64) +epochs: 8 ======== acc: array_w(83.7056, dtype=float64) +epochs: 9 ======== acc: array_w(84.8537, dtype=float64) +epochs: 10 ======== acc: array_w(85.7562, dtype=float64) +epochs: 11 ======== acc: array_w(86.5028, dtype=float64) +epochs: 12 ======== acc: array_w(87.1439, dtype=float64) +epochs: 13 ======== acc: array_w(87.7095, dtype=float64) +epochs: 14 ======== acc: array_w(88.2183, dtype=float64) +epochs: 15 ======== acc: array_w(88.6824, dtype=float64) +epochs: 16 ======== acc: array_w(89.1102, dtype=float64) +epochs: 17 ======== acc: array_w(89.5077, dtype=float64) +epochs: 18 ======== acc: array_w(89.8793, dtype=float64) +epochs: 19 ======== acc: array_w(90.2284, dtype=float64) +epochs: 20 ======== acc: array_w(90.5576, dtype=float64) +epochs: 21 ======== acc: array_w(90.8690, dtype=float64) +epochs: 22 ======== acc: array_w(91.1645, dtype=float64) +epochs: 23 ======== acc: array_w(91.4455, dtype=float64) +epochs: 24 ======== acc: array_w(91.7131, dtype=float64) +epochs: 25 ======== acc: array_w(91.9686, dtype=float64) +epochs: 26 ======== acc: array_w(92.2129, dtype=float64) +epochs: 27 ======== acc: array_w(92.4466, dtype=float64) +epochs: 28 ======== acc: array_w(92.6707, dtype=float64) +epochs: 29 ======== acc: array_w(92.8856, dtype=float64) +epochs: 30 ======== acc: array_w(93.0920, dtype=float64) +epochs: 31 ======== acc: array_w(93.2904, dtype=float64) +epochs: 32 ======== acc: array_w(93.4813, dtype=float64) +epochs: 33 ======== acc: array_w(93.6651, dtype=float64) +epochs: 34 ======== acc: array_w(93.8421, dtype=float64) +epochs: 35 ======== acc: array_w(94.0128, dtype=float64) +epochs: 36 ======== acc: array_w(94.1774, dtype=float64) +epochs: 37 ======== acc: array_w(94.3363, dtype=float64) +epochs: 38 ======== acc: array_w(94.4897, dtype=float64) +epochs: 39 ======== acc: array_w(94.6379, dtype=float64) +epochs: 40 ======== acc: array_w(94.7811, dtype=float64) +epochs: 41 ======== acc: array_w(94.9195, dtype=float64) +epochs: 42 ======== acc: array_w(95.0534, dtype=float64) +epochs: 43 ======== acc: array_w(95.1829, dtype=float64) +epochs: 44 ======== acc: array_w(95.3082, dtype=float64) +epochs: 45 ======== acc: array_w(95.4294, dtype=float64) +epochs: 46 ======== acc: array_w(95.5468, dtype=float64) +epochs: 47 ======== acc: array_w(95.6605, dtype=float64) +epochs: 48 ======== acc: array_w(95.7706, dtype=float64) +epochs: 49 ======== acc: array_w(95.8772, dtype=float64) +epochs: 50 ======== acc: array_w(95.9805, dtype=float64) +epochs: 51 ======== acc: array_w(96.0806, dtype=float64) +epochs: 52 ======== acc: array_w(96.1776, dtype=float64) +epochs: 53 ======== acc: array_w(96.2716, dtype=float64) +epochs: 54 ======== acc: array_w(96.3628, dtype=float64) +epochs: 55 ======== acc: array_w(96.4511, dtype=float64) +epochs: 56 ======== acc: array_w(96.5368, dtype=float64) +epochs: 57 ======== acc: array_w(96.6199, dtype=float64) +epochs: 58 ======== acc: array_w(96.7005, dtype=float64) +epochs: 59 ======== acc: array_w(96.7787, dtype=float64) +epochs: 60 ======== acc: array_w(96.8546, dtype=float64) +epochs: 61 ======== acc: array_w(96.9282, dtype=float64) +epochs: 62 ======== acc: array_w(96.9997, dtype=float64) +epochs: 63 ======== acc: array_w(97.0691, dtype=float64) +epochs: 64 ======== acc: array_w(97.1364, dtype=float64) +epochs: 65 ======== acc: array_w(97.2018, dtype=float64) +epochs: 66 ======== acc: array_w(97.2654, dtype=float64) +epochs: 67 ======== acc: array_w(97.3271, dtype=float64) +epochs: 68 ======== acc: array_w(97.3870, dtype=float64) +epochs: 69 ======== acc: array_w(97.4452, dtype=float64) +epochs: 70 ======== acc: array_w(97.5018, dtype=float64) +epochs: 71 ======== acc: array_w(97.5568, dtype=float64) +epochs: 72 ======== acc: array_w(97.6103, dtype=float64) +epochs: 73 ======== acc: array_w(97.6623, dtype=float64) +epochs: 74 ======== acc: array_w(97.7128, dtype=float64) +epochs: 75 ======== acc: array_w(97.7620, dtype=float64) +epochs: 76 ======== acc: array_w(97.8098, dtype=float64) +epochs: 77 ======== acc: array_w(97.8564, dtype=float64) +epochs: 78 ======== acc: array_w(97.9016, dtype=float64) +epochs: 79 ======== acc: array_w(97.9457, dtype=float64) +epochs: 80 ======== acc: array_w(97.9886, dtype=float64) +epochs: 81 ======== acc: array_w(98.0303, dtype=float64) +epochs: 82 ======== acc: array_w(98.0710, dtype=float64) +epochs: 83 ======== acc: array_w(98.1106, dtype=float64) +epochs: 84 ======== acc: array_w(98.1491, dtype=float64) +epochs: 85 ======== acc: array_w(98.1867, dtype=float64) +epochs: 86 ======== acc: array_w(98.2232, dtype=float64) +epochs: 87 ======== acc: array_w(98.2589, dtype=float64) +epochs: 88 ======== acc: array_w(98.2936, dtype=float64) +epochs: 89 ======== acc: array_w(98.3275, dtype=float64) +epochs: 90 ======== acc: array_w(98.3604, dtype=float64) +epochs: 91 ======== acc: array_w(98.3926, dtype=float64) +epochs: 92 ======== acc: array_w(98.4240, dtype=float64) +epochs: 93 ======== acc: array_w(98.4546, dtype=float64) +epochs: 94 ======== acc: array_w(98.4844, dtype=float64) +epochs: 95 ======== acc: array_w(98.5135, dtype=float64) +epochs: 96 ======== acc: array_w(98.5419, dtype=float64) +epochs: 97 ======== acc: array_w(98.5695, dtype=float64) +epochs: 98 ======== acc: array_w(98.5966, dtype=float64) +epochs: 99 ======== acc: array_w(98.6229, dtype=float64) +epochs: 100 ======== acc: array_w(98.6487, dtype=float64) +Image is of letter B. diff --git a/e2e/tests.md b/e2e/tests.md index 395c72ac..7c3b252a 100644 --- a/e2e/tests.md +++ b/e2e/tests.md @@ -5,4 +5,12 @@ Origin: https://www.geeksforgeeks.org/implementation-of-neural-network-from-scra Source: `e2e/nn_from_scratch`. +Results with numpy and torch_np are identical: + + - Use the original numpy random stream in both cases to initialize the NN weights + - scalar vs 0D array repr differs: + + `epochs: 100 ======== acc: 98.64865709132037` with NumPy vs + `epochs: 100 ======== acc: array_w(98.6487, dtype=float64)` with torch_np + From 4fe53cf8dc03c801580658163eb1655dfbdded81 Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Tue, 18 Apr 2023 13:54:13 +0300 Subject: [PATCH 04/13] MAZE: add original maze builder --- e2e/maze/maze.png | Bin 0 -> 53543 bytes e2e/maze/maze_numpy.py | 202 +++++++++++++++++++++++++++++++++++++++++ e2e/tests.md | 26 +++++- 3 files changed, 226 insertions(+), 2 deletions(-) create mode 100644 e2e/maze/maze.png create mode 100644 e2e/maze/maze_numpy.py diff --git a/e2e/maze/maze.png b/e2e/maze/maze.png new file mode 100644 index 0000000000000000000000000000000000000000..618b917e684c29649cf94314d8483c52a9e5d322 GIT binary patch literal 53543 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 RW%}sg8aJ;OT)X$%e*p$OskZ 1: + neighbours.append([(y, x-1), (y, x-2)]) + if x < shape[1]-2: + neighbours.append([(y, x+1), (y, x+2)]) + if y > 1: + neighbours.append([(y-1, x), (y-2, x)]) + if y < shape[0]-2: + neighbours.append([(y+1, x), (y+2, x)]) + if len(neighbours): + choice = np.random.randint(len(neighbours)) + next_1, next_2 = neighbours[choice] + if Z[next_2] == 0: + Z[next_1] = Z[next_2] = 1 + y, x = next_2 + else: + break + return Z + + +# ------------------------------------------------------ find_shortest_path --- +def BellmanFord(Z, start, goal): + + # We reserve Z such that walls have value 0 + Z = 1 - Z + + # Build gradient array + G = np.zeros(Z.shape) + + # Initialize gradient at the entrance with value 1 + G[start] = 1 + + # Discount factor + gamma = 0.99 + + def diffuse(Z): + # North, West, Center, East, South + return max(gamma*Z[0], gamma*Z[1], Z[2], gamma*Z[3], gamma*Z[4]) + + # Shortest path in best case cannot be less the Manhattan distance + # from entrance to exit + length = Z.shape[0]+Z.shape[1] + + # We iterate until value at exit is > 0. This requires the maze + # to have a solution or it will be stuck in the loop. + + G_gamma = np.empty_like(G) + while G[goal] == 0.0: + # Slow + # G = Z * generic_filter(G, diffuse, footprint=[[0, 1, 0], + # [1, 1, 1], + # [0, 1, 0]]) + + # Fast + np.multiply(G, gamma, out=G_gamma) + N = G_gamma[0:-2,1:-1] + W = G_gamma[1:-1,0:-2] + C = G[1:-1,1:-1] + E = G_gamma[1:-1,2:] + S = G_gamma[2:,1:-1] + G[1:-1,1:-1] = Z[1:-1,1:-1]*np.maximum(N,np.maximum(W,np.maximum(C,np.maximum(E,S)))) + + # Descent gradient to find shortest path from entrance to exit + y, x = goal + P = [] + dirs = [(0,-1), (0,+1), (-1,0), (+1,0)] + while (x, y) != start: + P.append((x, y)) + neighbours = [-1, -1, -1, -1] + if x > 0: + neighbours[0] = G[y, x-1] + if x < G.shape[1]-1: + neighbours[1] = G[y, x+1] + if y > 0: + neighbours[2] = G[y-1, x] + if y < G.shape[0]-1: + neighbours[3] = G[y+1, x] + a = np.argmax(neighbours) + x, y = x + dirs[a][1], y + dirs[a][0] + P.append((x, y)) + return G, np.array(P) + +def build_graph(maze): + height, width = maze.shape + graph = {(i, j): [] for j in range(width) for i in range(height) if not maze[i][j]} + for row, col in graph.keys(): + if row < height - 1 and not maze[row + 1][col]: + graph[(row, col)].append(("S", (row + 1, col))) + graph[(row + 1, col)].append(("N", (row, col))) + if col < width - 1 and not maze[row][col + 1]: + graph[(row, col)].append(("E", (row, col + 1))) + graph[(row, col + 1)].append(("W", (row, col))) + return graph + +def BreadthFirst(maze, start, goal): + queue = deque([([start], start)]) + visited = set() + graph = build_graph(maze) + while queue: + path, current = queue.popleft() + if current == goal: + return np.array(path) + if current in visited: + continue + visited.add(current) + for direction, neighbour in graph[current]: + p = list(path) + p.append(neighbour) + queue.append((p, neighbour)) + return None + + +# -------------------------------------------------------------------- main --- +if __name__ == '__main__': + + Z = build_maze((41,81)) + start, goal = (1,1), (Z.shape[0]-2, Z.shape[1]-2) + + G, P = BellmanFord(Z, start, goal) + X, Y = P[:,0], P[:,1] + + # P = BreadthFirst(Z, start, goal) + # X, Y = P[:,1], P[:,0] + + # Visualization maze, gradient and shortest path + plt.figure(figsize=(13, 13*Z.shape[0]/Z.shape[1])) + ax = plt.subplot(1, 1, 1, frameon=False) + ax.imshow(Z, interpolation='nearest', cmap=plt.cm.gray_r, vmin=0.0, vmax=1.0) + cmap = plt.cm.hot + cmap.set_under(color='k', alpha=0.0) + ax.imshow(G, interpolation='nearest', cmap=cmap, vmin=0.01, vmax=G[start]) + ax.scatter(X[1:-1], Y[1:-1], s=60, + lw=1, marker='o', edgecolors='k', facecolors='w') + ax.scatter(X[[0,-1]], Y[[0,-1]], s=60, + lw=3, marker='x', color=['w','k']) + ax.set_xticks([]) + ax.set_yticks([]) + plt.tight_layout() + plt.savefig("maze.png") + plt.show() diff --git a/e2e/tests.md b/e2e/tests.md index 7c3b252a..356e5ba8 100644 --- a/e2e/tests.md +++ b/e2e/tests.md @@ -5,12 +5,34 @@ Origin: https://www.geeksforgeeks.org/implementation-of-neural-network-from-scra Source: `e2e/nn_from_scratch`. -Results with numpy and torch_np are identical: + +Tweaks +------ - Use the original numpy random stream in both cases to initialize the NN weights - - scalar vs 0D array repr differs: + + +Results +------- + +Results with numpy and torch_np are identical modulo different scalar vs 0D array reprs: `epochs: 100 ======== acc: 98.64865709132037` with NumPy vs `epochs: 100 ======== acc: array_w(98.6487, dtype=float64)` with torch_np + +Build maze +========== + +Origin: N. Rougier, From python to numpy, +https://github.com/rougier/from-python-to-numpy/blob/master/code/maze_numpy.py + +Source: `e2e/maze` + + +Tweaks +------ + +Seed the numpy random generator. + From eeb09b22cc3da87cc75063b6669b61262465f396 Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Tue, 18 Apr 2023 14:26:56 +0300 Subject: [PATCH 05/13] MAZE: print the output --- e2e/maze/maze.output.np.txt | 184 ++++++++++++++++++++++++++++++++++++ e2e/maze/maze_numpy.py | 5 +- 2 files changed, 188 insertions(+), 1 deletion(-) create mode 100644 e2e/maze/maze.output.np.txt diff --git a/e2e/maze/maze.output.np.txt b/e2e/maze/maze.output.np.txt new file mode 100644 index 00000000..63c43619 --- /dev/null +++ b/e2e/maze/maze.output.np.txt @@ -0,0 +1,184 @@ +Z = [[ True True True ... True True True] + [ True False False ... True False True] + [ True False True ... True False True] + ... + [ True False True ... True False True] + [ True False False ... True False True] + [ True True True ... True True True]] +P = [[79 39] + [79 38] + [79 37] + [79 36] + [79 35] + [78 35] + [77 35] + [76 35] + [75 35] + [75 36] + [75 37] + [74 37] + [73 37] + [72 37] + [71 37] + [71 36] + [71 35] + [70 35] + [69 35] + [69 34] + [69 33] + [68 33] + [67 33] + [67 34] + [67 35] + [67 36] + [67 37] + [66 37] + [65 37] + [64 37] + [63 37] + [62 37] + [61 37] + [61 38] + [61 39] + [60 39] + [59 39] + [58 39] + [57 39] + [56 39] + [55 39] + [54 39] + [53 39] + [52 39] + [51 39] + [50 39] + [49 39] + [48 39] + [47 39] + [46 39] + [45 39] + [45 38] + [45 37] + [45 36] + [45 35] + [44 35] + [43 35] + [43 34] + [43 33] + [43 32] + [43 31] + [44 31] + [45 31] + [45 30] + [45 29] + [46 29] + [47 29] + [47 28] + [47 27] + [48 27] + [49 27] + [50 27] + [51 27] + [51 26] + [51 25] + [51 24] + [51 23] + [50 23] + [49 23] + [48 23] + [47 23] + [46 23] + [45 23] + [44 23] + [43 23] + [43 22] + [43 21] + [42 21] + [41 21] + [40 21] + [39 21] + [38 21] + [37 21] + [36 21] + [35 21] + [34 21] + [33 21] + [32 21] + [31 21] + [31 20] + [31 19] + [32 19] + [33 19] + [33 18] + [33 17] + [33 16] + [33 15] + [33 14] + [33 13] + [32 13] + [31 13] + [30 13] + [29 13] + [29 12] + [29 11] + [28 11] + [27 11] + [26 11] + [25 11] + [24 11] + [23 11] + [22 11] + [21 11] + [20 11] + [19 11] + [19 12] + [19 13] + [19 14] + [19 15] + [19 16] + [19 17] + [19 18] + [19 19] + [18 19] + [17 19] + [16 19] + [15 19] + [15 18] + [15 17] + [14 17] + [13 17] + [12 17] + [11 17] + [11 16] + [11 15] + [11 14] + [11 13] + [11 12] + [11 11] + [11 10] + [11 9] + [10 9] + [ 9 9] + [ 8 9] + [ 7 9] + [ 6 9] + [ 5 9] + [ 4 9] + [ 3 9] + [ 3 10] + [ 3 11] + [ 3 12] + [ 3 13] + [ 2 13] + [ 1 13] + [ 1 12] + [ 1 11] + [ 1 10] + [ 1 9] + [ 1 8] + [ 1 7] + [ 1 6] + [ 1 5] + [ 1 4] + [ 1 3] + [ 1 2] + [ 1 1]] diff --git a/e2e/maze/maze_numpy.py b/e2e/maze/maze_numpy.py index 9072e094..363b8433 100644 --- a/e2e/maze/maze_numpy.py +++ b/e2e/maze/maze_numpy.py @@ -183,7 +183,10 @@ def BreadthFirst(maze, start, goal): # P = BreadthFirst(Z, start, goal) # X, Y = P[:,1], P[:,0] - + + print("Z = ", Z) + print("P = ", P) + # Visualization maze, gradient and shortest path plt.figure(figsize=(13, 13*Z.shape[0]/Z.shape[1])) ax = plt.subplot(1, 1, 1, frameon=False) From fc30208f014b715cfa918d983af72f269a29137a Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Tue, 18 Apr 2023 14:21:03 +0300 Subject: [PATCH 06/13] MAZE: tweaks to make it work with torch_np --- e2e/maze/maze.output.tnp.txt | 186 ++++++++++++++++++++++++++++ e2e/maze/maze_numpy.py | 20 ++- e2e/maze/{maze.png => maze_tnp.png} | Bin e2e/tests.md | 7 +- 4 files changed, 207 insertions(+), 6 deletions(-) create mode 100644 e2e/maze/maze.output.tnp.txt rename e2e/maze/{maze.png => maze_tnp.png} (100%) diff --git a/e2e/maze/maze.output.tnp.txt b/e2e/maze/maze.output.tnp.txt new file mode 100644 index 00000000..f7cd5f7f --- /dev/null +++ b/e2e/maze/maze.output.tnp.txt @@ -0,0 +1,186 @@ +$ python maze_numpy.py +Z = array_w([[ True, True, True, ..., True, True, True], + [ True, False, False, ..., True, False, True], + [ True, False, True, ..., True, False, True], + ..., + [ True, False, True, ..., True, False, True], + [ True, False, False, ..., True, False, True], + [ True, True, True, ..., True, True, True]]) +P = array_w([[79, 39], + [79, 38], + [79, 37], + [79, 36], + [79, 35], + [78, 35], + [77, 35], + [76, 35], + [75, 35], + [75, 36], + [75, 37], + [74, 37], + [73, 37], + [72, 37], + [71, 37], + [71, 36], + [71, 35], + [70, 35], + [69, 35], + [69, 34], + [69, 33], + [68, 33], + [67, 33], + [67, 34], + [67, 35], + [67, 36], + [67, 37], + [66, 37], + [65, 37], + [64, 37], + [63, 37], + [62, 37], + [61, 37], + [61, 38], + [61, 39], + [60, 39], + [59, 39], + [58, 39], + [57, 39], + [56, 39], + [55, 39], + [54, 39], + [53, 39], + [52, 39], + [51, 39], + [50, 39], + [49, 39], + [48, 39], + [47, 39], + [46, 39], + [45, 39], + [45, 38], + [45, 37], + [45, 36], + [45, 35], + [44, 35], + [43, 35], + [43, 34], + [43, 33], + [43, 32], + [43, 31], + [44, 31], + [45, 31], + [45, 30], + [45, 29], + [46, 29], + [47, 29], + [47, 28], + [47, 27], + [48, 27], + [49, 27], + [50, 27], + [51, 27], + [51, 26], + [51, 25], + [51, 24], + [51, 23], + [50, 23], + [49, 23], + [48, 23], + [47, 23], + [46, 23], + [45, 23], + [44, 23], + [43, 23], + [43, 22], + [43, 21], + [42, 21], + [41, 21], + [40, 21], + [39, 21], + [38, 21], + [37, 21], + [36, 21], + [35, 21], + [34, 21], + [33, 21], + [32, 21], + [31, 21], + [31, 20], + [31, 19], + [32, 19], + [33, 19], + [33, 18], + [33, 17], + [33, 16], + [33, 15], + [33, 14], + [33, 13], + [32, 13], + [31, 13], + [30, 13], + [29, 13], + [29, 12], + [29, 11], + [28, 11], + [27, 11], + [26, 11], + [25, 11], + [24, 11], + [23, 11], + [22, 11], + [21, 11], + [20, 11], + [19, 11], + [19, 12], + [19, 13], + [19, 14], + [19, 15], + [19, 16], + [19, 17], + [19, 18], + [19, 19], + [18, 19], + [17, 19], + [16, 19], + [15, 19], + [15, 18], + [15, 17], + [14, 17], + [13, 17], + [12, 17], + [11, 17], + [11, 16], + [11, 15], + [11, 14], + [11, 13], + [11, 12], + [11, 11], + [11, 10], + [11, 9], + [10, 9], + [ 9, 9], + [ 8, 9], + [ 7, 9], + [ 6, 9], + [ 5, 9], + [ 4, 9], + [ 3, 9], + [ 3, 10], + [ 3, 11], + [ 3, 12], + [ 3, 13], + [ 2, 13], + [ 1, 13], + [ 1, 12], + [ 1, 11], + [ 1, 10], + [ 1, 9], + [ 1, 8], + [ 1, 7], + [ 1, 6], + [ 1, 5], + [ 1, 4], + [ 1, 3], + [ 1, 2], + [ 1, 1]]) + diff --git a/e2e/maze/maze_numpy.py b/e2e/maze/maze_numpy.py index 363b8433..516dd84f 100644 --- a/e2e/maze/maze_numpy.py +++ b/e2e/maze/maze_numpy.py @@ -3,12 +3,14 @@ # Copyright (2017) Nicolas P. Rougier - BSD license # More information at https://github.com/rougier/numpy-book # ----------------------------------------------------------------------------- -import numpy as np +import numpy as _np +import torch_np as np + from collections import deque import matplotlib.pyplot as plt ## from scipy.ndimage import generic_filter -np.random.seed(1234) +_np.random.seed(1234) def build_maze(shape=(65,65), complexity=0.75, density = 0.50): @@ -43,7 +45,9 @@ def build_maze(shape=(65,65), complexity=0.75, density = 0.50): Z[0,:] = Z[-1,:] = Z[:,0] = Z[:,-1] = 1 # Islands starting point with a bias in favor of border - P = np.random.normal(0, 0.5, (n_density,2)) + P = _np.random.normal(0, 0.5, (n_density,2)) + P = np.asarray(P) + P = 0.5 - np.maximum(-0.5, np.minimum(P, +0.5)) P = (P*[shape[1],shape[0]]).astype(int) P = 2*(P//2) @@ -70,7 +74,8 @@ def build_maze(shape=(65,65), complexity=0.75, density = 0.50): if y < shape[0]-2: neighbours.append([(y+1, x), (y+2, x)]) if len(neighbours): - choice = np.random.randint(len(neighbours)) + choice = _np.random.randint(len(neighbours)) + choice = np.asarray(choice) next_1, next_2 = neighbours[choice] if Z[next_2] == 0: Z[next_1] = Z[next_2] = 1 @@ -187,6 +192,11 @@ def BreadthFirst(maze, start, goal): print("Z = ", Z) print("P = ", P) + X = X.tensor.numpy() + Y = Y.tensor.numpy() + Z = Z.tensor.numpy() + G = G.tensor.numpy() + # Visualization maze, gradient and shortest path plt.figure(figsize=(13, 13*Z.shape[0]/Z.shape[1])) ax = plt.subplot(1, 1, 1, frameon=False) @@ -201,5 +211,5 @@ def BreadthFirst(maze, start, goal): ax.set_xticks([]) ax.set_yticks([]) plt.tight_layout() - plt.savefig("maze.png") + plt.savefig("maze_tnp.png") plt.show() diff --git a/e2e/maze/maze.png b/e2e/maze/maze_tnp.png similarity index 100% rename from e2e/maze/maze.png rename to e2e/maze/maze_tnp.png diff --git a/e2e/tests.md b/e2e/tests.md index 356e5ba8..64efeee0 100644 --- a/e2e/tests.md +++ b/e2e/tests.md @@ -34,5 +34,10 @@ Source: `e2e/maze` Tweaks ------ -Seed the numpy random generator. +Seed the numpy random generator, use the same random stream. + +For plotting with matplotlib, convert torch_numpy arrays to numpy via +`Z = Z.tensor.numpy()`. + + From 22c70570187cf06e0b7ea60a49ea63791775bdab Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Tue, 18 Apr 2023 20:12:31 +0300 Subject: [PATCH 07/13] SMOKE: add original smoke_{1, 2} and smoke_solver --- e2e/smoke/smoke_1.py | 77 +++++++++++++++++++ e2e/smoke/smoke_2.py | 86 ++++++++++++++++++++++ e2e/smoke/smoke_solver.py | 150 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 313 insertions(+) create mode 100644 e2e/smoke/smoke_1.py create mode 100644 e2e/smoke/smoke_2.py create mode 100644 e2e/smoke/smoke_solver.py diff --git a/e2e/smoke/smoke_1.py b/e2e/smoke/smoke_1.py new file mode 100644 index 00000000..f858fdee --- /dev/null +++ b/e2e/smoke/smoke_1.py @@ -0,0 +1,77 @@ +# ----------------------------------------------------------------------------- +# From Numpy to Python +# Copyright (2017) Nicolas P. Rougier - BSD license +# More information at https://github.com/rougier/numpy-book +# ----------------------------------------------------------------------------- +import numpy as np +from smoke_solver import vel_step, dens_step + +N = 128 +size = N + 2 +dt = 0.1 +diff = 0.0 +visc = 0.0 +force = 5.0 +source = 100.0 + +u = np.zeros((size, size), np.float32) # velocity +u_prev = np.zeros((size, size), np.float32) + +v = np.zeros((size, size), np.float32) # velocity +v_prev = np.zeros((size, size), np.float32) + +dens = np.zeros((size, size), np.float32) # density +dens_prev = np.zeros((size, size), np.float32) + + +def initialization(): + global u, v, u_prev, v_prev, dens, dens_prev, size + + u[:, :] = 0.0 + v[:, :] = 0.0 + u_prev[:, :] = 0.0 + v_prev[:, :] = 0.0 + dens[:, :] = 0.0 + dens_prev[:, :] = 0.0 + + def disc(shape=(size, size), center=(size/2, size/2), radius=10): + def distance(x, y): + return np.sqrt((x-center[0])**2+(y-center[1])**2) + D = np.fromfunction(distance, shape) + return np.where(D <= radius, True, False) + + D = disc(radius=32) - disc(radius=16) + dens[...] = D*source/10 + u[:, :] = force * 0.1 * np.random.uniform(-1, 1, u.shape) + v[:, :] = force * 0.1 * np.random.uniform(-1, 1, u.shape) + + +def update(*args): + global im, dens, dens_prev, u, u_prev, v, v_prev, N, visc, dt, diff + + vel_step(N, u, v, u_prev, v_prev, visc, dt) + dens_step(N, dens, dens_prev, u, v, diff, dt) + im.set_data(dens) + im.set_clim(vmin=dens.min(), vmax=dens.max()) + + +if __name__ == '__main__': + import matplotlib.pyplot as plt + from matplotlib.animation import FuncAnimation + + fig = plt.figure(figsize=(5, 5)) + ax = fig.add_axes([0, 0, 1, 1], frameon=False) + ax.set_xlim(0, 1) + ax.set_xticks([]) + ax.set_ylim(0, 1) + ax.set_yticks([]) + + initialization() + im = ax.imshow(dens[1:-1, 1:-1], + interpolation='bicubic', extent=[0, 1, 0, 1], + cmap=plt.cm.magma, origin="lower", vmin=0, vmax=1) + animation = FuncAnimation(fig, update, interval=10, frames=800) + # animation.save('smoke-1.mp4', fps=40, dpi=80, bitrate=-1, + # codec="libx264", extra_args=['-pix_fmt', 'yuv420p'], + # metadata={'artist':'Nicolas P. Rougier'}) + plt.show() diff --git a/e2e/smoke/smoke_2.py b/e2e/smoke/smoke_2.py new file mode 100644 index 00000000..2cf108e2 --- /dev/null +++ b/e2e/smoke/smoke_2.py @@ -0,0 +1,86 @@ +# ----------------------------------------------------------------------------- +# From Numpy to Python +# Copyright (2017) Nicolas P. Rougier - BSD license +# More information at https://github.com/rougier/numpy-book +# ----------------------------------------------------------------------------- +import numpy as np +from smoke_solver import vel_step, dens_step + +N = 128 +size = N + 2 +dt = 0.1 +diff = 0.0 +visc = 0.0 +force = 5.0 +source = 100.0 +dvel = False + +u = np.zeros((size, size), np.float32) # velocity +u_prev = np.zeros((size, size), np.float32) + +v = np.zeros((size, size), np.float32) # velocity +v_prev = np.zeros((size, size), np.float32) + +dens = np.zeros((size, size), np.float32) # density +dens_prev = np.zeros((size, size), np.float32) + + +def initialization(): + global u, v, u_prev, v_prev, dens, dens_prev, size + + u[:, :] = 0.0 + v[:, :] = 0.0 + u_prev[:, :] = 0.0 + v_prev[:, :] = 0.0 + dens[:, :] = 0.0 + dens_prev[:, :] = 0.0 + + def disc(shape=(size, size), center=(size/2, size/2), radius=10): + def distance(x, y): + return np.sqrt((x-center[0])**2+(y-center[1])**2) + D = np.fromfunction(distance, shape) + return np.where(D <= radius, True, False) + + D = disc(radius=10) - disc(radius=5) + dens[...] += D*source/50 + + D = disc(radius=20) - disc(radius=15) + dens[...] += D*source/50 + + ox, oy = size/2, size/2 + for j in range(1, N+1): + for i in range(1, N+1): + d = np.sqrt((i-ox)**2+(j-oy)**2) + u[i, j] = (i-ox)/max(d, 1) * force * 0.25 + v[i, j] = (j-oy)/max(d, 1) * force * 0.25 + u[:, :] += force * 0.1 * np.random.uniform(-1, 1, u.shape) + v[:, :] += force * 0.1 * np.random.uniform(-1, 1, u.shape) + + +def update(*args): + global im, dens, dens_prev, u, u_prev, v, v_prev, N, visc, dt, diff + + vel_step(N, u, v, u_prev, v_prev, visc, dt) + dens_step(N, dens, dens_prev, u, v, diff, dt) + im.set_data(dens) + im.set_clim(vmin=dens.min(), vmax=dens.max()) + +if __name__ == '__main__': + import matplotlib.pyplot as plt + from matplotlib.animation import FuncAnimation + + fig = plt.figure(figsize=(5, 5)) + ax = fig.add_axes([0, 0, 1, 1], frameon=False) + ax.set_xlim(0, 1) + ax.set_xticks([]) + ax.set_ylim(0, 1) + ax.set_yticks([]) + initialization() + im = ax.imshow(dens[1:-1, 1:-1], + interpolation='bicubic', extent=[0, 1, 0, 1], + cmap=plt.cm.gray, origin="lower", vmin=0, vmax=1) + animation = FuncAnimation(fig, update, interval=10, frames=800) + # animation.save('smoke-2.mp4', fps=40, dpi=80, bitrate=-1, + # codec="libx264", extra_args=['-pix_fmt', 'yuv420p'], + # metadata={'artist': 'Nicolas P. Rougier'}) + plt.show() diff --git a/e2e/smoke/smoke_solver.py b/e2e/smoke/smoke_solver.py new file mode 100644 index 00000000..05e3112d --- /dev/null +++ b/e2e/smoke/smoke_solver.py @@ -0,0 +1,150 @@ +# ----------------------------------------------------------------------------- +# From Numpy to Python +# Copyright (2017) Nicolas P. Rougier - BSD license +# More information at https://github.com/rougier/numpy-book +# ----------------------------------------------------------------------------- +""" +Real-Time Fluid Dynamics for Games by Jos Stam (2003). + +Copyright (c) 2015 Alberto Santini - MIT License +Code adapted from Alberto Santini implementation available at: +https://github.com/albertosantini/python-fluid +""" +import numpy as np + + +def set_bnd(N, b, x): + """We assume that the fluid is contained in a box with solid walls. + + No flow should exit the walls. This simply means that the horizontal + component of the velocity should be zero on the vertical walls, while the + vertical component of the velocity should be zero on the horizontal walls. + For the density and other fields considered in the code we simply assume + continuity. The following code implements these conditions. + """ + + if b == 1: + x[0, 1:-1] = -x[1, 1:-1] + x[-1, 1:-1] = -x[N, 1:-1] + else: + x[ 0, 1:-1] = x[1, 1:-1] + x[-1, 1:-1] = x[N, 1:-1] + if b == 2: + x[1:-1, 0] = -x[1:-1, 1] + x[1:-1, -1] = -x[1:-1, N] + else: + x[1:-1, 0] = x[1:-1, 1] + x[1:-1, -1] = x[1:-1, N] + + x[ 0, 0] = 0.5 * (x[1, 0] + x[ 0, 1]) + x[ 0, -1] = 0.5 * (x[1, -1] + x[ 0, N]) + x[-1, 0] = 0.5 * (x[N, 0] + x[-1, 1]) + x[-1, -1] = 0.5 * (x[N, -1] + x[-1, N]) + + +def lin_solve(N, b, x, x0, a, c): + """lin_solve.""" + + for k in range(20): + x[1:-1, 1:-1] = (x0[1:-1, 1:-1] + + a * (x[:N, 1:-1] + x[2:, 1:-1] + + x[1:-1, :N] + x[1:-1, 2:])) / c + set_bnd(N, b, x) + + +def add_source(N, x, s, dt): + """Addition of forces: the density increases due to sources.""" + x += dt * s + + +def diffuse(N, b, x, x0, diff, dt): + """Diffusion: the density diffuses at a certain rate. + + The basic idea behind our method is to find the densities which when + diffused backward in time yield the densities we started with. The simplest + iterative solver which works well in practice is Gauss-Seidel relaxation. + """ + + a = dt * diff * N * N + lin_solve(N, b, x, x0, a, 1 + 4 * a) + + +def advect(N, b, d, d0, u, v, dt): + """Advection: the density follows the velocity field. + + The basic idea behind the advection step. Instead of moving the cell + centers forward in time through the velocity field, we look for the + particles which end up exactly at the cell centers by tracing backwards in + time from the cell centers. + """ + + dt0 = dt * N + + I, J = np.indices((N, N)) + I += 1 + J += 1 + X = I - dt0 * u[I, J] + Y = J - dt0 * v[I, J] + + X = np.minimum(np.maximum(X, 0.5), N+0.5) + I0 = X.astype(int) + I1 = I0+1 + S1 = X - I0 + S0 = 1 - S1 + + Y = np.minimum(np.maximum(Y, 0.5), N+0.5) + J0 = Y.astype(int) + J1 = J0 + 1 + T1 = Y - J0 + T0 = 1 - T1 + + d[I, J] = (S0 * (T0 * d0[I0, J0] + T1 * d0[I0, J1]) + + S1 * (T0 * d0[I1, J0] + T1 * d0[I1, J1])) + + set_bnd(N, b, d) + + +def project(N, u, v, p, div): + """ Projection """ + + h = 1.0 / N + div[1:-1, 1:-1] = (-0.5 * h * + (u[2:, 1:-1] - u[0:N, 1:-1] + + v[1:-1, 2:] - v[1:-1, 0:N])) + p[1:-1, 1:-1] = 0 + set_bnd(N, 0, div) + set_bnd(N, 0, p) + lin_solve(N, 0, p, div, 1, 4) + u[1:-1, 1:-1] -= 0.5 * (p[2:, 1:-1] - p[0:N, 1:-1]) / h + v[1:-1, 1:-1] -= 0.5 * (p[1:-1, 2:] - p[1:-1, 0:N]) / h + set_bnd(N, 1, u) + set_bnd(N, 2, v) + + +def dens_step(N, x, x0, u, v, diff, dt): + # Density step: advection, diffusion & addition of sources. + add_source(N, x, x0, dt) + x0, x = x, x0 # swap + diffuse(N, 0, x, x0, diff, dt) + x0, x = x, x0 # swap + advect(N, 0, x, x0, u, v, dt) + + +def vel_step(N, u, v, u0, v0, visc, dt): + # Velocity step: self-advection, viscous diffusion & addition of forces + + add_source(N, u, u0, dt) + add_source(N, v, v0, dt) + u0, u = u, u0 # swap + + diffuse(N, 1, u, u0, visc, dt) + v0, v = v, v0 # swap + + diffuse(N, 2, v, v0, visc, dt) + project(N, u, v, u0, v0) + u0, u = u, u0 # swap + v0, v = v, v0 # swap + + advect(N, 1, u, u0, u0, v0, dt) + advect(N, 2, v, v0, u0, v0, dt) + project(N, u, v, u0, v0) From f41e618956d78012b904b408052d3e215328709c Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Tue, 18 Apr 2023 20:19:15 +0300 Subject: [PATCH 08/13] BUG: fix smoke_1 to work on numpy 1.24.x (binary subtract operator on boolean arrays) --- e2e/smoke/smoke_1.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/smoke/smoke_1.py b/e2e/smoke/smoke_1.py index f858fdee..5cca8ebe 100644 --- a/e2e/smoke/smoke_1.py +++ b/e2e/smoke/smoke_1.py @@ -40,7 +40,7 @@ def distance(x, y): D = np.fromfunction(distance, shape) return np.where(D <= radius, True, False) - D = disc(radius=32) - disc(radius=16) + D = disc(radius=32) ^ disc(radius=16) dens[...] = D*source/10 u[:, :] = force * 0.1 * np.random.uniform(-1, 1, u.shape) v[:, :] = force * 0.1 * np.random.uniform(-1, 1, u.shape) From ada784e2544ef4b72c5c2159273e5387090d94a2 Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Tue, 18 Apr 2023 20:28:07 +0300 Subject: [PATCH 09/13] SMOKE: diffusion/advection: inline np.fromfunction, convert to/from numpy for MPL --- e2e/smoke/smoke_1.py | 15 +++++++++++---- e2e/smoke/smoke_solver.py | 2 +- e2e/tests.md | 13 +++++++++++++ 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/e2e/smoke/smoke_1.py b/e2e/smoke/smoke_1.py index 5cca8ebe..17b3f072 100644 --- a/e2e/smoke/smoke_1.py +++ b/e2e/smoke/smoke_1.py @@ -3,7 +3,7 @@ # Copyright (2017) Nicolas P. Rougier - BSD license # More information at https://github.com/rougier/numpy-book # ----------------------------------------------------------------------------- -import numpy as np +import torch_np as np from smoke_solver import vel_step, dens_step N = 128 @@ -37,11 +37,18 @@ def initialization(): def disc(shape=(size, size), center=(size/2, size/2), radius=10): def distance(x, y): return np.sqrt((x-center[0])**2+(y-center[1])**2) - D = np.fromfunction(distance, shape) + + + # inline np.fromfunction: https://github.com/numpy/numpy/blob/v1.24.0/numpy/core/numeric.py#L1798-L1866 +# D = np.fromfunction(distance, shape) + + args = np.indices(shape, dtype=float) + D = distance(*args) return np.where(D <= radius, True, False) D = disc(radius=32) ^ disc(radius=16) dens[...] = D*source/10 + u[:, :] = force * 0.1 * np.random.uniform(-1, 1, u.shape) v[:, :] = force * 0.1 * np.random.uniform(-1, 1, u.shape) @@ -51,7 +58,7 @@ def update(*args): vel_step(N, u, v, u_prev, v_prev, visc, dt) dens_step(N, dens, dens_prev, u, v, diff, dt) - im.set_data(dens) + im.set_data(dens.tensor.numpy()) im.set_clim(vmin=dens.min(), vmax=dens.max()) @@ -67,7 +74,7 @@ def update(*args): ax.set_yticks([]) initialization() - im = ax.imshow(dens[1:-1, 1:-1], + im = ax.imshow(dens[1:-1, 1:-1].tensor.numpy(), interpolation='bicubic', extent=[0, 1, 0, 1], cmap=plt.cm.magma, origin="lower", vmin=0, vmax=1) animation = FuncAnimation(fig, update, interval=10, frames=800) diff --git a/e2e/smoke/smoke_solver.py b/e2e/smoke/smoke_solver.py index 05e3112d..c26d5b51 100644 --- a/e2e/smoke/smoke_solver.py +++ b/e2e/smoke/smoke_solver.py @@ -10,7 +10,7 @@ Code adapted from Alberto Santini implementation available at: https://github.com/albertosantini/python-fluid """ -import numpy as np +import torch_np as np def set_bnd(N, b, x): diff --git a/e2e/tests.md b/e2e/tests.md index 64efeee0..e84231a4 100644 --- a/e2e/tests.md +++ b/e2e/tests.md @@ -41,3 +41,16 @@ For plotting with matplotlib, convert torch_numpy arrays to numpy via +Diffusion/advection +------------------- + +Origin: N. Rougier, From python to numpy, +https://github.com/rougier/from-python-to-numpy/blob/master/code/{smoke_solver,smoke_1,smoke_2}.py + +Source: `e2e/smoke` + +Tweaks +------ + + - fix a bug in bool array minus bool array (fails on numpy 1.24) + - inline np.fromfunction into a call to np.indices From 5c8f5684b1d6ec53e3b8d9ac6c9bfdd288b23827 Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Tue, 18 Apr 2023 21:52:49 +0300 Subject: [PATCH 10/13] BUG: fix __setitem__(..., value of other dtype) --- torch_np/_ndarray.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/torch_np/_ndarray.py b/torch_np/_ndarray.py index 15659e65..0aaf6677 100644 --- a/torch_np/_ndarray.py +++ b/torch_np/_ndarray.py @@ -442,6 +442,9 @@ def __setitem__(self, index, value): index = _helpers.ndarrays_to_tensors(index) index = ndarray._upcast_int_indices(index) value = _helpers.ndarrays_to_tensors(value) + + if isinstance(value, torch.Tensor): + value = _util.cast_if_needed(value, self.tensor.dtype) return self.tensor.__setitem__(index, value) take = _funcs.take From 8d2dfd494213996f9a5ca0dd51f6a965b4f46953 Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Wed, 19 Apr 2023 10:23:12 +0300 Subject: [PATCH 11/13] MAINT: exclude e2e examples from linting --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index caefdbb4..b2652846 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,15 +4,15 @@ repos: hooks: - id: autoflake args: ["--in-place"] - exclude: ^torch_np/tests/numpy_tests/ + exclude: '^torch_np/tests/numpy_tests/|^e2e' - repo: https://github.com/timothycrosley/isort rev: 5.12.0 hooks: - id: isort args: ["--profile", "black", "--filter-files"] - exclude: ^torch_np/tests/numpy_tests/ + exclude: '^torch_np/tests/numpy_tests/|^e2e' - repo: https://github.com/psf/black rev: 22.12.0 hooks: - id: black - exclude: ^torch_np/tests/numpy_tests/ + exclude: '^torch_np/tests/numpy_tests/|^e2e' From 1c612c142917c30d934d2d828ac657aded7d90b0 Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Wed, 19 Apr 2023 11:07:23 +0300 Subject: [PATCH 12/13] MANDEL: add Mandelbrot example (mandelbrot_numpy_1.py) --- e2e/mandelbrot/mandelbrot.png | Bin 0 -> 329134 bytes e2e/mandelbrot/mandelbrot.py | 68 ++++++++++++++++++++++++++++++++++ e2e/tests.md | 17 +++++++++ 3 files changed, 85 insertions(+) create mode 100644 e2e/mandelbrot/mandelbrot.png create mode 100644 e2e/mandelbrot/mandelbrot.py diff --git a/e2e/mandelbrot/mandelbrot.png b/e2e/mandelbrot/mandelbrot.png new file mode 100644 index 0000000000000000000000000000000000000000..ef654186032153475f188d23bea2bc4adc1bc37a GIT binary patch literal 329134 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 z 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

%JPVc1HZ7`kA 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
@{%kYlBfsx-wIt|s?Yc`wqIt3=$F8(5#>1m{EB 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℘ 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 Q!{oi@9*DQL&YG7 z$2_wBXtYC1G(&+}KC|8n?7Q`DE1pHVzbBTsK*RoXwnMIaPQ&{_B&a-HQ^3;)Eoq%k zE8uo+0oJ#$g8WsKN0fGvE~A8HIm=LSznv_-ZUP?6tl-QYeZv{yu)4+?#@aln16{gG z?+0ynywlY=pgRg8#6e$-bl(y8QlQynW^#4)Hd?*9xY{;6auM!-BBJz+^jOrbz@KTH zSSv~`Hl|3(Q-L^OkTpZWCBzGm5~9eu;=h5^7Lo+;TOa%0yL!GUE3;98E4LGap-LRB z(zOR3lbtI39Cs0reR zrwhhIl|&NwlWO-u*&+bIpp?h!=txh`{JrUQjgCRCMEBR!=B+dT<`%9aY_5N06; zte$F;FJ<(dc_J$+R*p_!)_Q0jpoPM$BM`(H8GM@?H^8}Pwc|}~UQTDqT;)m-7A>Fm zqtUx9>ugsTCdgpb!KiGYmS8X-B`2d2eF!z6A3T}aTD#!cZ&s}R6Ab=P?${fN{Z~^!Bs%tL_)Ij!1t}e&9f6L#~*djE!136t? zeAPG^p1N7#7xuKrP4$g*T~v^V{Um}M@*wkNSX2IpTq_Y?F4B%EQppeG?≥snL}w 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

CY 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 literal 0 HcmV?d00001 diff --git a/e2e/mandelbrot/mandelbrot.py b/e2e/mandelbrot/mandelbrot.py new file mode 100644 index 00000000..41884ee9 --- /dev/null +++ b/e2e/mandelbrot/mandelbrot.py @@ -0,0 +1,68 @@ +# ----------------------------------------------------------------------------- +# From Numpy to Python +# Copyright (2017) Nicolas P. Rougier - BSD license +# More information at https://github.com/rougier/numpy-book +# ----------------------------------------------------------------------------- +#import numpy as np +import torch_np as np + +# from mandelbrot_numpy_1 import mandelbrot # copy-paste below + +def mandelbrot(xmin, xmax, ymin, ymax, xn, yn, maxiter, horizon=2.0): + # Adapted from https://www.ibm.com/developerworks/community/blogs/jfp/... + # .../entry/How_To_Compute_Mandelbrodt_Set_Quickly?lang=en + X = np.linspace(xmin, xmax, xn, dtype=np.float32) + Y = np.linspace(ymin, ymax, yn, dtype=np.float32) + C = X + Y[:,None]*1j + N = np.zeros(C.shape, dtype=int) + Z = np.zeros(C.shape, np.complex64) + for n in range(maxiter): + I = np.less(abs(Z), horizon) + N[I] = n + Z[I] = Z[I]**2 + C[I] + N[N == maxiter-1] = 0 + return Z, N + + +if __name__ == '__main__': + from matplotlib import colors + import matplotlib.pyplot as plt + ## from timeit import timeit + + # Benchmark + xmin, xmax, xn = -2.25, +0.75, int(3000/3) + ymin, ymax, yn = -1.25, +1.25, int(2500/3) + maxiter = 200 + ## timeit("mandelbrot_1(xmin, xmax, ymin, ymax, xn, yn, maxiter)", globals()) + ## timeit("mandelbrot_2(xmin, xmax, ymin, ymax, xn, yn, maxiter)", globals()) + ## timeit("mandelbrot_3(xmin, xmax, ymin, ymax, xn, yn, maxiter)", globals()) + + # Visualization + xmin, xmax, xn = -2.25, +0.75, int(3000/2) + ymin, ymax, yn = -1.25, +1.25, int(2500/2) + maxiter = 200 + horizon = 2.0 ** 40 + log_horizon = np.log(np.log(horizon))/np.log(2) + Z, N = mandelbrot(xmin, xmax, ymin, ymax, xn, yn, maxiter, horizon) + + # Normalized recount as explained in: + # http://linas.org/art-gallery/escape/smooth.html + M = np.nan_to_num(N + 1 - np.log(np.log(abs(Z)))/np.log(2) + log_horizon) + + dpi = 72 + width = 10 + height = 10*yn/xn + + fig = plt.figure(figsize=(width, height), dpi=dpi) + ax = fig.add_axes([0.0, 0.0, 1.0, 1.0], frameon=False, aspect=1) + + light = colors.LightSource(azdeg=315, altdeg=10) + + plt.imshow(light.shade(M.tensor.numpy(), cmap=plt.cm.hot, vert_exag=1.5, + norm = colors.PowerNorm(0.3), blend_mode='hsv'), + extent=[xmin, xmax, ymin, ymax], interpolation="bicubic") + ax.set_xticks([]) + ax.set_yticks([]) + plt.savefig("mandelbrot.png") + plt.show() + diff --git a/e2e/tests.md b/e2e/tests.md index e84231a4..fba65eb8 100644 --- a/e2e/tests.md +++ b/e2e/tests.md @@ -54,3 +54,20 @@ Tweaks - fix a bug in bool array minus bool array (fails on numpy 1.24) - inline np.fromfunction into a call to np.indices + + +Mandelbrot fractal +------------------ + +Origin: N. Rougier, From python to numpy, +https://github.com/rougier/from-python-to-numpy/blob/master/code/mandelbrot.py +https://github.com/rougier/from-python-to-numpy/blob/master/code/mandelbrot_numpy_1.py + +source: `e2e/mandelbrot.py` + +Tweaks +------ + + - use `mandelbrot_numpy_1.py` version (slightly slower, but no mgrid) + - complex abs in float32 runs into https://github.com/pytorch/pytorch/pull/99550 + From 77a5f242685aa6216924de1b8ebffe692ae5cc3d Mon Sep 17 00:00:00 2001 From: Evgeni Burovski Date: Wed, 19 Apr 2023 22:41:28 +0300 Subject: [PATCH 13/13] ENH: nan_to_num --- torch_np/_dtypes.py | 1 + torch_np/_funcs_impl.py | 12 +++++- .../tests/numpy_tests/lib/test_type_check.py | 43 ++++++------------- 3 files changed, 25 insertions(+), 31 deletions(-) diff --git a/torch_np/_dtypes.py b/torch_np/_dtypes.py index eb673b68..2c308cac 100644 --- a/torch_np/_dtypes.py +++ b/torch_np/_dtypes.py @@ -439,6 +439,7 @@ def issubdtype(arg1, arg2): "csingle", "cdouble", "float_", + "complex_", ] __all__ += ["sctypes"] __all__ += [ diff --git a/torch_np/_funcs_impl.py b/torch_np/_funcs_impl.py index 41eb7f49..569e7ef7 100644 --- a/torch_np/_funcs_impl.py +++ b/torch_np/_funcs_impl.py @@ -874,8 +874,16 @@ def mintypecode(): raise NotImplementedError -def nan_to_num(): - raise NotImplementedError +def nan_to_num( + x: ArrayLike, copy: NotImplementedType = True, nan=0.0, posinf=None, neginf=None +): + # work around RuntimeError: "nan_to_num" not implemented for 'ComplexDouble' + if x.is_complex(): + re = torch.nan_to_num(x.real, nan=nan, posinf=posinf, neginf=neginf) + im = torch.nan_to_num(x.imag, nan=nan, posinf=posinf, neginf=neginf) + return re + 1j * im + else: + return torch.nan_to_num(x, nan=nan, posinf=posinf, neginf=neginf) def asfarray(): diff --git a/torch_np/tests/numpy_tests/lib/test_type_check.py b/torch_np/tests/numpy_tests/lib/test_type_check.py index 341ee1bc..e42a1862 100644 --- a/torch_np/tests/numpy_tests/lib/test_type_check.py +++ b/torch_np/tests/numpy_tests/lib/test_type_check.py @@ -324,7 +324,7 @@ def test_generic(self): assert_(vals[2] == 0) -@pytest.mark.xfail(reason="not implemented") +#@pytest.mark.xfail(reason="not implemented") class TestNanToNum: def test_generic(self): @@ -333,7 +333,7 @@ def test_generic(self): assert_all(vals[0] < -1e10) and assert_all(np.isfinite(vals[0])) assert_(vals[1] == 0) assert_all(vals[2] > 1e10) and assert_all(np.isfinite(vals[2])) - assert_equal(type(vals), np.ndarray) + assert isinstance(vals, np.ndarray) # perform the same tests but with nan, posinf and neginf keywords with np.errstate(divide='ignore', invalid='ignore'): @@ -341,45 +341,27 @@ def test_generic(self): nan=10, posinf=20, neginf=30) assert_equal(vals, [30, 10, 20]) assert_all(np.isfinite(vals[[0, 2]])) - assert_equal(type(vals), np.ndarray) - - # perform the same test but in-place - with np.errstate(divide='ignore', invalid='ignore'): - vals = np.array((-1., 0, 1))/0. - result = nan_to_num(vals, copy=False) - - assert_(result is vals) - assert_all(vals[0] < -1e10) and assert_all(np.isfinite(vals[0])) - assert_(vals[1] == 0) - assert_all(vals[2] > 1e10) and assert_all(np.isfinite(vals[2])) - assert_equal(type(vals), np.ndarray) - - # perform the same test but in-place - with np.errstate(divide='ignore', invalid='ignore'): - vals = np.array((-1., 0, 1))/0. - result = nan_to_num(vals, copy=False, nan=10, posinf=20, neginf=30) + assert isinstance(vals, np.ndarray) - assert_(result is vals) - assert_equal(vals, [30, 10, 20]) - assert_all(np.isfinite(vals[[0, 2]])) - assert_equal(type(vals), np.ndarray) def test_array(self): vals = nan_to_num([1]) assert_array_equal(vals, np.array([1], int)) - assert_equal(type(vals), np.ndarray) + assert isinstance(vals, np.ndarray) vals = nan_to_num([1], nan=10, posinf=20, neginf=30) assert_array_equal(vals, np.array([1], int)) - assert_equal(type(vals), np.ndarray) + assert isinstance(vals, np.ndarray) + @pytest.mark.skip(reason="we return OD arrays not scalars") def test_integer(self): vals = nan_to_num(1) assert_all(vals == 1) - assert_equal(type(vals), np.int_) + assert isinstance(vals, np.int_) vals = nan_to_num(1, nan=10, posinf=20, neginf=30) assert_all(vals == 1) - assert_equal(type(vals), np.int_) + assert isinstance(vals, np.int_) + @pytest.mark.skip(reason="we return OD arrays not scalars") def test_float(self): vals = nan_to_num(1.0) assert_all(vals == 1.0) @@ -388,14 +370,16 @@ def test_float(self): assert_all(vals == 1.1) assert_equal(type(vals), np.float_) + @pytest.mark.skip(reason="we return OD arrays not scalars") def test_complex_good(self): vals = nan_to_num(1+1j) assert_all(vals == 1+1j) - assert_equal(type(vals), np.complex_) + assert isinstance(vals, np.complex_) vals = nan_to_num(1+1j, nan=10, posinf=20, neginf=30) assert_all(vals == 1+1j) assert_equal(type(vals), np.complex_) + @pytest.mark.skip(reason="we return OD arrays not scalars") def test_complex_bad(self): with np.errstate(divide='ignore', invalid='ignore'): v = 1 + 1j @@ -405,6 +389,7 @@ def test_complex_bad(self): assert_all(np.isfinite(vals)) assert_equal(type(vals), np.complex_) + @pytest.mark.skip(reason="we return OD arrays not scalars") def test_complex_bad2(self): with np.errstate(divide='ignore', invalid='ignore'): v = 1 + 1j @@ -427,7 +412,7 @@ def test_do_not_rewrite_previous_keyword(self): assert_all(np.isfinite(vals[[0, 2]])) assert_all(vals[0] < -1e10) assert_equal(vals[[1, 2]], [np.inf, 999]) - assert_equal(type(vals), np.ndarray) + assert isinstance(vals, np.ndarray) class TestRealIfClose: