From 6a4837f2608e4e54203a03fcb06be14a1c4b5743 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Sun, 15 Dec 2019 14:06:49 +0100 Subject: [PATCH] updated eigvalue solvers --- .../{hamiltonian.py => MatrixRNN.py} | 0 .../ODEEigenvalueSolverTF.py | 106 ++ .../{EigRNN.py => RNN.py} | 0 .../eigen_tf1_working.ipynb | 1280 ----------------- 4 files changed, 106 insertions(+), 1280 deletions(-) rename doc/Programs/EigenvaluesDeepLearning/{hamiltonian.py => MatrixRNN.py} (100%) create mode 100644 doc/Programs/EigenvaluesDeepLearning/ODEEigenvalueSolverTF.py rename doc/Programs/EigenvaluesDeepLearning/{EigRNN.py => RNN.py} (100%) delete mode 100644 doc/Programs/EigenvaluesDeepLearning/eigen_tf1_working.ipynb diff --git a/doc/Programs/EigenvaluesDeepLearning/hamiltonian.py b/doc/Programs/EigenvaluesDeepLearning/MatrixRNN.py similarity index 100% rename from doc/Programs/EigenvaluesDeepLearning/hamiltonian.py rename to doc/Programs/EigenvaluesDeepLearning/MatrixRNN.py diff --git a/doc/Programs/EigenvaluesDeepLearning/ODEEigenvalueSolverTF.py b/doc/Programs/EigenvaluesDeepLearning/ODEEigenvalueSolverTF.py new file mode 100644 index 000000000..a26c5e65b --- /dev/null +++ b/doc/Programs/EigenvaluesDeepLearning/ODEEigenvalueSolverTF.py @@ -0,0 +1,106 @@ +# # Finding eigenvalues of matrices with neural networks. +# Script for finding the eigenvectors corresponding to the largest eigenvalue of a matrix with a neural network. + +import tensorflow.compat.v1 as tf +tf.disable_v2_behavior() +tf.reset_default_graph() +# tf.set_random_seed(343) + +# import tensorflow as tf +import numpy as np +from matplotlib import cm +from matplotlib import pyplot as plt +from mpl_toolkits.mplot3d import axes3d +#from lib import compute_dx_dt + +matrix_size = 6 + +A = np.random.random_sample(size=(matrix_size,matrix_size)) +A = (A.T + A)/2.0 +start_matrix = A + +eigen_vals, eigen_vecs = np.linalg.eig(A) + +A = tf.convert_to_tensor(A) +print("A = ", A) + +x_0 = tf.convert_to_tensor(np.random.random_sample(size = (1,matrix_size))) +print("x0 = ", x_0) + +## The construction phase + +num_iter = 10000 +num_hidden_neurons = [50] +num_hidden_layers = np.size(num_hidden_neurons) + + +with tf.variable_scope('dnn'): + + previous_layer = x_0 + + for l in range(num_hidden_layers): + current_layer = tf.layers.dense(previous_layer, num_hidden_neurons[l],activation=tf.nn.sigmoid) + previous_layer = current_layer + + dnn_output = tf.layers.dense(previous_layer, matrix_size) + +with tf.name_scope('loss'): + print("dnn_output = ", dnn_output) + + x_trial = tf.transpose(dnn_output) + print("x_trial = ", x_trial) + + temp1 = (tf.tensordot(tf.transpose(x_trial), x_trial, axes=1)*A) + temp2 = (1- tf.tensordot(tf.transpose(x_trial), tf.tensordot(A, x_trial, axes=1), axes=1))*np.eye(matrix_size) + func = tf.tensordot((temp1-temp2), x_trial, axes=1) + + print(temp1) + print(temp2) + print(func) + + func = tf.transpose(func) + x_trial = tf.transpose(x_trial) + + loss = tf.losses.mean_squared_error(func, x_trial) + +learning_rate = 0.001 + +with tf.name_scope('train'): + optimizer = tf.train.GradientDescentOptimizer(learning_rate) + traning_op = optimizer.minimize(loss) + +init = tf.global_variables_initializer() + +g_dnn = None + +losses = [] + +with tf.Session() as sess: + init.run() + for i in range(num_iter): + sess.run(traning_op) + + if i % 100 == 0: + l = loss.eval() + print("Step:", i, "/",num_iter, "loss: ", l) + losses.append(l) + + x_dnn = x_trial.eval() +x_dnn = x_dnn.T + + +# ## Plotting loss over time + +plt.plot(losses[:5]) +plt.xlabel("Iteration") +plt.ylabel("Loss") + +print("Eigenvector NN = \n", (x_dnn/(x_dnn**2).sum()**0.5), "\n") + +eigen_val_nn = x_dnn.T @ (start_matrix @ x_dnn) / (x_dnn.T @ x_dnn) + +print("Eigenvalue NN = \n", eigen_val_nn, "\n \n") +print("Eigenvector analytic = \n", eigen_vecs) +print("\n") +print("Eigenvalues analytic = \n",eigen_vals) + diff --git a/doc/Programs/EigenvaluesDeepLearning/EigRNN.py b/doc/Programs/EigenvaluesDeepLearning/RNN.py similarity index 100% rename from doc/Programs/EigenvaluesDeepLearning/EigRNN.py rename to doc/Programs/EigenvaluesDeepLearning/RNN.py diff --git a/doc/Programs/EigenvaluesDeepLearning/eigen_tf1_working.ipynb b/doc/Programs/EigenvaluesDeepLearning/eigen_tf1_working.ipynb deleted file mode 100644 index 51a8b86af..000000000 --- a/doc/Programs/EigenvaluesDeepLearning/eigen_tf1_working.ipynb +++ /dev/null @@ -1,1280 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Finding eigenvalues of matrices with neural networks. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Script for finding the eigenvectors corresponding to the largest eigenvalue of a matrix with a neural network." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "A = Tensor(\"Const:0\", shape=(6, 6), dtype=float64)\n", - "x0 = Tensor(\"Const_1:0\", shape=(1, 6), dtype=float64)\n", - "WARNING:tensorflow:From :39: dense (from tensorflow.python.layers.core) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Use keras.layers.Dense instead.\n", - "WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow_core/python/layers/core.py:187: Layer.apply (from tensorflow.python.keras.engine.base_layer) is deprecated and will be removed in a future version.\n", - "Instructions for updating:\n", - "Please use `layer.__call__` method instead.\n", - "dnn_output = Tensor(\"dnn/dense_1/BiasAdd:0\", shape=(1, 6), dtype=float64)\n", - "x_trial = Tensor(\"loss/transpose:0\", shape=(6, 1), dtype=float64)\n", - "Tensor(\"loss/mul:0\", shape=(6, 6), dtype=float64)\n", - "Tensor(\"loss/mul_1:0\", shape=(6, 6), dtype=float64)\n", - "Tensor(\"loss/Tensordot_3:0\", shape=(6, 1), dtype=float64)\n", - "Step: 0 / 100000 loss: 2.0191553\n", - "Step: 100 / 100000 loss: 0.022660406\n", - "Step: 200 / 100000 loss: 0.006862058\n", - "Step: 300 / 100000 loss: 0.0028367888\n", - "Step: 400 / 100000 loss: 0.001317931\n", - "Step: 500 / 100000 loss: 0.00064829254\n", - "Step: 600 / 100000 loss: 0.0003291912\n", - "Step: 700 / 100000 loss: 0.00017035629\n", - "Step: 800 / 100000 loss: 8.9204266e-05\n", - "Step: 900 / 100000 loss: 4.706214e-05\n", - "Step: 1000 / 100000 loss: 2.4949668e-05\n", - "Step: 1100 / 100000 loss: 1.3268927e-05\n", - "Step: 1200 / 100000 loss: 7.071492e-06\n", - "Step: 1300 / 100000 loss: 3.7738437e-06\n", - "Step: 1400 / 100000 loss: 2.015838e-06\n", - "Step: 1500 / 100000 loss: 1.0774404e-06\n", - "Step: 1600 / 100000 loss: 5.7610913e-07\n", - "Step: 1700 / 100000 loss: 3.0813854e-07\n", - "Step: 1800 / 100000 loss: 1.6483555e-07\n", - "Step: 1900 / 100000 loss: 8.819142e-08\n", - "Step: 2000 / 100000 loss: 4.7185008e-08\n", - "Step: 2100 / 100000 loss: 2.5249873e-08\n", - "Step: 2200 / 100000 loss: 1.3511282e-08\n", - "Step: 2300 / 100000 loss: 7.2302817e-09\n", - "Step: 2400 / 100000 loss: 3.8690895e-09\n", - "Step: 2500 / 100000 loss: 2.070449e-09\n", - "Step: 2600 / 100000 loss: 1.1081149e-09\n", - "Step: 2700 / 100000 loss: 5.92873e-10\n", - "Step: 2800 / 100000 loss: 3.1733713e-10\n", - "Step: 2900 / 100000 loss: 1.6974193e-10\n", - "Step: 3000 / 100000 loss: 9.090295e-11\n", - "Step: 3100 / 100000 loss: 4.8613707e-11\n", - "Step: 3200 / 100000 loss: 2.5965119e-11\n", - "Step: 3300 / 100000 loss: 1.3911501e-11\n", - "Step: 3400 / 100000 loss: 7.447302e-12\n", - "Step: 3500 / 100000 loss: 3.9832213e-12\n", - "Step: 3600 / 100000 loss: 2.140436e-12\n", - "Step: 3700 / 100000 loss: 1.1341298e-12\n", - "Step: 3800 / 100000 loss: 6.1051164e-13\n", - "Step: 3900 / 100000 loss: 3.270717e-13\n", - "Step: 4000 / 100000 loss: 1.7389794e-13\n", - "Step: 4100 / 100000 loss: 9.4702024e-14\n", - "Step: 4200 / 100000 loss: 4.9293902e-14\n", - "Step: 4300 / 100000 loss: 2.6719368e-14\n", - "Step: 4400 / 100000 loss: 1.5210055e-14\n", - "Step: 4500 / 100000 loss: 8.141636e-15\n", - "Step: 4600 / 100000 loss: 4.107825e-15\n", - "Step: 4700 / 100000 loss: 2.4424907e-15\n", - "Step: 4800 / 100000 loss: 1.2582527e-15\n", - "Step: 4900 / 100000 loss: 4.440892e-16\n", - "Step: 5000 / 100000 loss: 2.220446e-16\n", - "Step: 5100 / 100000 loss: 1.110223e-16\n", - "Step: 5200 / 100000 loss: 2.5905203e-16\n", - "Step: 5300 / 100000 loss: 3.7007435e-17\n", - "Step: 5400 / 100000 loss: 7.401487e-17\n", - "Step: 5500 / 100000 loss: 3.7007435e-17\n", - "Step: 5600 / 100000 loss: 0.0\n", - "Step: 5700 / 100000 loss: 0.0\n", - "Step: 5800 / 100000 loss: 0.0\n", - "Step: 5900 / 100000 loss: 0.0\n", - "Step: 6000 / 100000 loss: 0.0\n", - "Step: 6100 / 100000 loss: 0.0\n", - "Step: 6200 / 100000 loss: 0.0\n", - "Step: 6300 / 100000 loss: 0.0\n", - "Step: 6400 / 100000 loss: 0.0\n", - "Step: 6500 / 100000 loss: 0.0\n", - "Step: 6600 / 100000 loss: 0.0\n", - "Step: 6700 / 100000 loss: 0.0\n", - "Step: 6800 / 100000 loss: 0.0\n", - "Step: 6900 / 100000 loss: 0.0\n", - "Step: 7000 / 100000 loss: 0.0\n", - "Step: 7100 / 100000 loss: 0.0\n", - "Step: 7200 / 100000 loss: 0.0\n", - "Step: 7300 / 100000 loss: 0.0\n", - "Step: 7400 / 100000 loss: 0.0\n", - "Step: 7500 / 100000 loss: 0.0\n", - "Step: 7600 / 100000 loss: 0.0\n", - "Step: 7700 / 100000 loss: 0.0\n", - "Step: 7800 / 100000 loss: 0.0\n", - "Step: 7900 / 100000 loss: 0.0\n", - "Step: 8000 / 100000 loss: 0.0\n", - "Step: 8100 / 100000 loss: 0.0\n", - "Step: 8200 / 100000 loss: 0.0\n", - "Step: 8300 / 100000 loss: 0.0\n", - "Step: 8400 / 100000 loss: 0.0\n", - "Step: 8500 / 100000 loss: 0.0\n", - "Step: 8600 / 100000 loss: 0.0\n", - "Step: 8700 / 100000 loss: 0.0\n", - "Step: 8800 / 100000 loss: 0.0\n", - "Step: 8900 / 100000 loss: 0.0\n", - "Step: 9000 / 100000 loss: 0.0\n", - "Step: 9100 / 100000 loss: 0.0\n", - "Step: 9200 / 100000 loss: 0.0\n", - "Step: 9300 / 100000 loss: 0.0\n", - "Step: 9400 / 100000 loss: 0.0\n", - "Step: 9500 / 100000 loss: 0.0\n", - "Step: 9600 / 100000 loss: 0.0\n", - "Step: 9700 / 100000 loss: 0.0\n", - "Step: 9800 / 100000 loss: 0.0\n", - "Step: 9900 / 100000 loss: 0.0\n", - "Step: 10000 / 100000 loss: 0.0\n", - "Step: 10100 / 100000 loss: 0.0\n", - "Step: 10200 / 100000 loss: 0.0\n", - "Step: 10300 / 100000 loss: 0.0\n", - "Step: 10400 / 100000 loss: 0.0\n", - "Step: 10500 / 100000 loss: 0.0\n", - "Step: 10600 / 100000 loss: 0.0\n", - "Step: 10700 / 100000 loss: 0.0\n", - "Step: 10800 / 100000 loss: 0.0\n", - "Step: 10900 / 100000 loss: 0.0\n", - "Step: 11000 / 100000 loss: 0.0\n", - "Step: 11100 / 100000 loss: 0.0\n", - "Step: 11200 / 100000 loss: 0.0\n", - "Step: 11300 / 100000 loss: 0.0\n", - "Step: 11400 / 100000 loss: 0.0\n", - "Step: 11500 / 100000 loss: 0.0\n", - "Step: 11600 / 100000 loss: 0.0\n", - "Step: 11700 / 100000 loss: 0.0\n", - "Step: 11800 / 100000 loss: 0.0\n", - "Step: 11900 / 100000 loss: 0.0\n", - "Step: 12000 / 100000 loss: 0.0\n", - "Step: 12100 / 100000 loss: 0.0\n", - "Step: 12200 / 100000 loss: 0.0\n", - "Step: 12300 / 100000 loss: 0.0\n", - "Step: 12400 / 100000 loss: 0.0\n", - "Step: 12500 / 100000 loss: 0.0\n", - "Step: 12600 / 100000 loss: 0.0\n", - "Step: 12700 / 100000 loss: 0.0\n", - "Step: 12800 / 100000 loss: 0.0\n", - "Step: 12900 / 100000 loss: 0.0\n", - "Step: 13000 / 100000 loss: 0.0\n", - "Step: 13100 / 100000 loss: 0.0\n", - "Step: 13200 / 100000 loss: 0.0\n", - "Step: 13300 / 100000 loss: 0.0\n", - "Step: 13400 / 100000 loss: 0.0\n", - "Step: 13500 / 100000 loss: 0.0\n", - "Step: 13600 / 100000 loss: 0.0\n", - "Step: 13700 / 100000 loss: 0.0\n", - "Step: 13800 / 100000 loss: 0.0\n", - "Step: 13900 / 100000 loss: 0.0\n", - "Step: 14000 / 100000 loss: 0.0\n", - "Step: 14100 / 100000 loss: 0.0\n", - "Step: 14200 / 100000 loss: 0.0\n", - "Step: 14300 / 100000 loss: 0.0\n", - "Step: 14400 / 100000 loss: 0.0\n", - "Step: 14500 / 100000 loss: 0.0\n", - "Step: 14600 / 100000 loss: 0.0\n", - "Step: 14700 / 100000 loss: 0.0\n", - "Step: 14800 / 100000 loss: 0.0\n", - "Step: 14900 / 100000 loss: 0.0\n", - "Step: 15000 / 100000 loss: 0.0\n", - "Step: 15100 / 100000 loss: 0.0\n", - "Step: 15200 / 100000 loss: 0.0\n", - "Step: 15300 / 100000 loss: 0.0\n", - "Step: 15400 / 100000 loss: 0.0\n", - "Step: 15500 / 100000 loss: 0.0\n", - "Step: 15600 / 100000 loss: 0.0\n", - "Step: 15700 / 100000 loss: 0.0\n", - "Step: 15800 / 100000 loss: 0.0\n", - "Step: 15900 / 100000 loss: 0.0\n", - "Step: 16000 / 100000 loss: 0.0\n", - "Step: 16100 / 100000 loss: 0.0\n", - "Step: 16200 / 100000 loss: 0.0\n", - "Step: 16300 / 100000 loss: 0.0\n", - "Step: 16400 / 100000 loss: 0.0\n", - "Step: 16500 / 100000 loss: 0.0\n", - "Step: 16600 / 100000 loss: 0.0\n", - "Step: 16700 / 100000 loss: 0.0\n", - "Step: 16800 / 100000 loss: 0.0\n", - "Step: 16900 / 100000 loss: 0.0\n", - "Step: 17000 / 100000 loss: 0.0\n", - "Step: 17100 / 100000 loss: 0.0\n", - "Step: 17200 / 100000 loss: 0.0\n", - "Step: 17300 / 100000 loss: 0.0\n", - "Step: 17400 / 100000 loss: 0.0\n", - "Step: 17500 / 100000 loss: 0.0\n", - "Step: 17600 / 100000 loss: 0.0\n", - "Step: 17700 / 100000 loss: 0.0\n", - "Step: 17800 / 100000 loss: 0.0\n", - "Step: 17900 / 100000 loss: 0.0\n", - "Step: 18000 / 100000 loss: 0.0\n", - "Step: 18100 / 100000 loss: 0.0\n", - "Step: 18200 / 100000 loss: 0.0\n", - "Step: 18300 / 100000 loss: 0.0\n", - "Step: 18400 / 100000 loss: 0.0\n", - "Step: 18500 / 100000 loss: 0.0\n", - "Step: 18600 / 100000 loss: 0.0\n", - "Step: 18700 / 100000 loss: 0.0\n", - "Step: 18800 / 100000 loss: 0.0\n", - "Step: 18900 / 100000 loss: 0.0\n", - "Step: 19000 / 100000 loss: 0.0\n", - "Step: 19100 / 100000 loss: 0.0\n", - "Step: 19200 / 100000 loss: 0.0\n", - "Step: 19300 / 100000 loss: 0.0\n", - "Step: 19400 / 100000 loss: 0.0\n", - "Step: 19500 / 100000 loss: 0.0\n", - "Step: 19600 / 100000 loss: 0.0\n", - "Step: 19700 / 100000 loss: 0.0\n", - "Step: 19800 / 100000 loss: 0.0\n", - "Step: 19900 / 100000 loss: 0.0\n", - "Step: 20000 / 100000 loss: 0.0\n", - "Step: 20100 / 100000 loss: 0.0\n", - "Step: 20200 / 100000 loss: 0.0\n", - "Step: 20300 / 100000 loss: 0.0\n", - "Step: 20400 / 100000 loss: 0.0\n", - "Step: 20500 / 100000 loss: 0.0\n", - "Step: 20600 / 100000 loss: 0.0\n", - "Step: 20700 / 100000 loss: 0.0\n", - "Step: 20800 / 100000 loss: 0.0\n", - "Step: 20900 / 100000 loss: 0.0\n", - "Step: 21000 / 100000 loss: 0.0\n", - "Step: 21100 / 100000 loss: 0.0\n", - "Step: 21200 / 100000 loss: 0.0\n", - "Step: 21300 / 100000 loss: 0.0\n", - "Step: 21400 / 100000 loss: 0.0\n", - "Step: 21500 / 100000 loss: 0.0\n", - "Step: 21600 / 100000 loss: 0.0\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Step: 21700 / 100000 loss: 0.0\n", - "Step: 21800 / 100000 loss: 0.0\n", - "Step: 21900 / 100000 loss: 0.0\n", - "Step: 22000 / 100000 loss: 0.0\n", - "Step: 22100 / 100000 loss: 0.0\n", - "Step: 22200 / 100000 loss: 0.0\n", - "Step: 22300 / 100000 loss: 0.0\n", - "Step: 22400 / 100000 loss: 0.0\n", - "Step: 22500 / 100000 loss: 0.0\n", - "Step: 22600 / 100000 loss: 0.0\n", - "Step: 22700 / 100000 loss: 0.0\n", - "Step: 22800 / 100000 loss: 0.0\n", - "Step: 22900 / 100000 loss: 0.0\n", - "Step: 23000 / 100000 loss: 0.0\n", - "Step: 23100 / 100000 loss: 0.0\n", - "Step: 23200 / 100000 loss: 0.0\n", - "Step: 23300 / 100000 loss: 0.0\n", - "Step: 23400 / 100000 loss: 0.0\n", - "Step: 23500 / 100000 loss: 0.0\n", - "Step: 23600 / 100000 loss: 0.0\n", - "Step: 23700 / 100000 loss: 0.0\n", - "Step: 23800 / 100000 loss: 0.0\n", - "Step: 23900 / 100000 loss: 0.0\n", - "Step: 24000 / 100000 loss: 0.0\n", - "Step: 24100 / 100000 loss: 0.0\n", - "Step: 24200 / 100000 loss: 0.0\n", - "Step: 24300 / 100000 loss: 0.0\n", - "Step: 24400 / 100000 loss: 0.0\n", - "Step: 24500 / 100000 loss: 0.0\n", - "Step: 24600 / 100000 loss: 0.0\n", - "Step: 24700 / 100000 loss: 0.0\n", - "Step: 24800 / 100000 loss: 0.0\n", - "Step: 24900 / 100000 loss: 0.0\n", - "Step: 25000 / 100000 loss: 0.0\n", - "Step: 25100 / 100000 loss: 0.0\n", - "Step: 25200 / 100000 loss: 0.0\n", - "Step: 25300 / 100000 loss: 0.0\n", - "Step: 25400 / 100000 loss: 0.0\n", - "Step: 25500 / 100000 loss: 0.0\n", - "Step: 25600 / 100000 loss: 0.0\n", - "Step: 25700 / 100000 loss: 0.0\n", - "Step: 25800 / 100000 loss: 0.0\n", - "Step: 25900 / 100000 loss: 0.0\n", - "Step: 26000 / 100000 loss: 0.0\n", - "Step: 26100 / 100000 loss: 0.0\n", - "Step: 26200 / 100000 loss: 0.0\n", - "Step: 26300 / 100000 loss: 0.0\n", - "Step: 26400 / 100000 loss: 0.0\n", - "Step: 26500 / 100000 loss: 0.0\n", - "Step: 26600 / 100000 loss: 0.0\n", - "Step: 26700 / 100000 loss: 0.0\n", - "Step: 26800 / 100000 loss: 0.0\n", - "Step: 26900 / 100000 loss: 0.0\n", - "Step: 27000 / 100000 loss: 0.0\n", - "Step: 27100 / 100000 loss: 0.0\n", - "Step: 27200 / 100000 loss: 0.0\n", - "Step: 27300 / 100000 loss: 0.0\n", - "Step: 27400 / 100000 loss: 0.0\n", - "Step: 27500 / 100000 loss: 0.0\n", - "Step: 27600 / 100000 loss: 0.0\n", - "Step: 27700 / 100000 loss: 0.0\n", - "Step: 27800 / 100000 loss: 0.0\n", - "Step: 27900 / 100000 loss: 0.0\n", - "Step: 28000 / 100000 loss: 0.0\n", - "Step: 28100 / 100000 loss: 0.0\n", - "Step: 28200 / 100000 loss: 0.0\n", - "Step: 28300 / 100000 loss: 0.0\n", - "Step: 28400 / 100000 loss: 0.0\n", - "Step: 28500 / 100000 loss: 0.0\n", - "Step: 28600 / 100000 loss: 0.0\n", - "Step: 28700 / 100000 loss: 0.0\n", - "Step: 28800 / 100000 loss: 0.0\n", - "Step: 28900 / 100000 loss: 0.0\n", - "Step: 29000 / 100000 loss: 0.0\n", - "Step: 29100 / 100000 loss: 0.0\n", - "Step: 29200 / 100000 loss: 0.0\n", - "Step: 29300 / 100000 loss: 0.0\n", - "Step: 29400 / 100000 loss: 0.0\n", - "Step: 29500 / 100000 loss: 0.0\n", - "Step: 29600 / 100000 loss: 0.0\n", - "Step: 29700 / 100000 loss: 0.0\n", - "Step: 29800 / 100000 loss: 0.0\n", - "Step: 29900 / 100000 loss: 0.0\n", - "Step: 30000 / 100000 loss: 0.0\n", - "Step: 30100 / 100000 loss: 0.0\n", - "Step: 30200 / 100000 loss: 0.0\n", - "Step: 30300 / 100000 loss: 0.0\n", - "Step: 30400 / 100000 loss: 0.0\n", - "Step: 30500 / 100000 loss: 0.0\n", - "Step: 30600 / 100000 loss: 0.0\n", - "Step: 30700 / 100000 loss: 0.0\n", - "Step: 30800 / 100000 loss: 0.0\n", - "Step: 30900 / 100000 loss: 0.0\n", - "Step: 31000 / 100000 loss: 0.0\n", - "Step: 31100 / 100000 loss: 0.0\n", - "Step: 31200 / 100000 loss: 0.0\n", - "Step: 31300 / 100000 loss: 0.0\n", - "Step: 31400 / 100000 loss: 0.0\n", - "Step: 31500 / 100000 loss: 0.0\n", - "Step: 31600 / 100000 loss: 0.0\n", - "Step: 31700 / 100000 loss: 0.0\n", - "Step: 31800 / 100000 loss: 0.0\n", - "Step: 31900 / 100000 loss: 0.0\n", - "Step: 32000 / 100000 loss: 0.0\n", - "Step: 32100 / 100000 loss: 0.0\n", - "Step: 32200 / 100000 loss: 0.0\n", - "Step: 32300 / 100000 loss: 0.0\n", - "Step: 32400 / 100000 loss: 0.0\n", - "Step: 32500 / 100000 loss: 0.0\n", - "Step: 32600 / 100000 loss: 0.0\n", - "Step: 32700 / 100000 loss: 0.0\n", - "Step: 32800 / 100000 loss: 0.0\n", - "Step: 32900 / 100000 loss: 0.0\n", - "Step: 33000 / 100000 loss: 0.0\n", - "Step: 33100 / 100000 loss: 0.0\n", - "Step: 33200 / 100000 loss: 0.0\n", - "Step: 33300 / 100000 loss: 0.0\n", - "Step: 33400 / 100000 loss: 0.0\n", - "Step: 33500 / 100000 loss: 0.0\n", - "Step: 33600 / 100000 loss: 0.0\n", - "Step: 33700 / 100000 loss: 0.0\n", - "Step: 33800 / 100000 loss: 0.0\n", - "Step: 33900 / 100000 loss: 0.0\n", - "Step: 34000 / 100000 loss: 0.0\n", - "Step: 34100 / 100000 loss: 0.0\n", - "Step: 34200 / 100000 loss: 0.0\n", - "Step: 34300 / 100000 loss: 0.0\n", - "Step: 34400 / 100000 loss: 0.0\n", - "Step: 34500 / 100000 loss: 0.0\n", - "Step: 34600 / 100000 loss: 0.0\n", - "Step: 34700 / 100000 loss: 0.0\n", - "Step: 34800 / 100000 loss: 0.0\n", - "Step: 34900 / 100000 loss: 0.0\n", - "Step: 35000 / 100000 loss: 0.0\n", - "Step: 35100 / 100000 loss: 0.0\n", - "Step: 35200 / 100000 loss: 0.0\n", - "Step: 35300 / 100000 loss: 0.0\n", - "Step: 35400 / 100000 loss: 0.0\n", - "Step: 35500 / 100000 loss: 0.0\n", - "Step: 35600 / 100000 loss: 0.0\n", - "Step: 35700 / 100000 loss: 0.0\n", - "Step: 35800 / 100000 loss: 0.0\n", - "Step: 35900 / 100000 loss: 0.0\n", - "Step: 36000 / 100000 loss: 0.0\n", - "Step: 36100 / 100000 loss: 0.0\n", - "Step: 36200 / 100000 loss: 0.0\n", - "Step: 36300 / 100000 loss: 0.0\n", - "Step: 36400 / 100000 loss: 0.0\n", - "Step: 36500 / 100000 loss: 0.0\n", - "Step: 36600 / 100000 loss: 0.0\n", - "Step: 36700 / 100000 loss: 0.0\n", - "Step: 36800 / 100000 loss: 0.0\n", - "Step: 36900 / 100000 loss: 0.0\n", - "Step: 37000 / 100000 loss: 0.0\n", - "Step: 37100 / 100000 loss: 0.0\n", - "Step: 37200 / 100000 loss: 0.0\n", - "Step: 37300 / 100000 loss: 0.0\n", - "Step: 37400 / 100000 loss: 0.0\n", - "Step: 37500 / 100000 loss: 0.0\n", - "Step: 37600 / 100000 loss: 0.0\n", - "Step: 37700 / 100000 loss: 0.0\n", - "Step: 37800 / 100000 loss: 0.0\n", - "Step: 37900 / 100000 loss: 0.0\n", - "Step: 38000 / 100000 loss: 0.0\n", - "Step: 38100 / 100000 loss: 0.0\n", - "Step: 38200 / 100000 loss: 0.0\n", - "Step: 38300 / 100000 loss: 0.0\n", - "Step: 38400 / 100000 loss: 0.0\n", - "Step: 38500 / 100000 loss: 0.0\n", - "Step: 38600 / 100000 loss: 0.0\n", - "Step: 38700 / 100000 loss: 0.0\n", - "Step: 38800 / 100000 loss: 0.0\n", - "Step: 38900 / 100000 loss: 0.0\n", - "Step: 39000 / 100000 loss: 0.0\n", - "Step: 39100 / 100000 loss: 0.0\n", - "Step: 39200 / 100000 loss: 0.0\n", - "Step: 39300 / 100000 loss: 0.0\n", - "Step: 39400 / 100000 loss: 0.0\n", - "Step: 39500 / 100000 loss: 0.0\n", - "Step: 39600 / 100000 loss: 0.0\n", - "Step: 39700 / 100000 loss: 0.0\n", - "Step: 39800 / 100000 loss: 0.0\n", - "Step: 39900 / 100000 loss: 0.0\n", - "Step: 40000 / 100000 loss: 0.0\n", - "Step: 40100 / 100000 loss: 0.0\n", - "Step: 40200 / 100000 loss: 0.0\n", - "Step: 40300 / 100000 loss: 0.0\n", - "Step: 40400 / 100000 loss: 0.0\n", - "Step: 40500 / 100000 loss: 0.0\n", - "Step: 40600 / 100000 loss: 0.0\n", - "Step: 40700 / 100000 loss: 0.0\n", - "Step: 40800 / 100000 loss: 0.0\n", - "Step: 40900 / 100000 loss: 0.0\n", - "Step: 41000 / 100000 loss: 0.0\n", - "Step: 41100 / 100000 loss: 0.0\n", - "Step: 41200 / 100000 loss: 0.0\n", - "Step: 41300 / 100000 loss: 0.0\n", - "Step: 41400 / 100000 loss: 0.0\n", - "Step: 41500 / 100000 loss: 0.0\n", - "Step: 41600 / 100000 loss: 0.0\n", - "Step: 41700 / 100000 loss: 0.0\n", - "Step: 41800 / 100000 loss: 0.0\n", - "Step: 41900 / 100000 loss: 0.0\n", - "Step: 42000 / 100000 loss: 0.0\n", - "Step: 42100 / 100000 loss: 0.0\n", - "Step: 42200 / 100000 loss: 0.0\n", - "Step: 42300 / 100000 loss: 0.0\n", - "Step: 42400 / 100000 loss: 0.0\n", - "Step: 42500 / 100000 loss: 0.0\n", - "Step: 42600 / 100000 loss: 0.0\n", - "Step: 42700 / 100000 loss: 0.0\n", - "Step: 42800 / 100000 loss: 0.0\n", - "Step: 42900 / 100000 loss: 0.0\n", - "Step: 43000 / 100000 loss: 0.0\n", - "Step: 43100 / 100000 loss: 0.0\n", - "Step: 43200 / 100000 loss: 0.0\n", - "Step: 43300 / 100000 loss: 0.0\n", - "Step: 43400 / 100000 loss: 0.0\n", - "Step: 43500 / 100000 loss: 0.0\n", - "Step: 43600 / 100000 loss: 0.0\n", - "Step: 43700 / 100000 loss: 0.0\n", - "Step: 43800 / 100000 loss: 0.0\n", - "Step: 43900 / 100000 loss: 0.0\n", - "Step: 44000 / 100000 loss: 0.0\n", - "Step: 44100 / 100000 loss: 0.0\n", - "Step: 44200 / 100000 loss: 0.0\n", - "Step: 44300 / 100000 loss: 0.0\n", - "Step: 44400 / 100000 loss: 0.0\n", - "Step: 44500 / 100000 loss: 0.0\n", - "Step: 44600 / 100000 loss: 0.0\n", - "Step: 44700 / 100000 loss: 0.0\n", - "Step: 44800 / 100000 loss: 0.0\n", - "Step: 44900 / 100000 loss: 0.0\n", - "Step: 45000 / 100000 loss: 0.0\n", - "Step: 45100 / 100000 loss: 0.0\n", - "Step: 45200 / 100000 loss: 0.0\n", - "Step: 45300 / 100000 loss: 0.0\n", - "Step: 45400 / 100000 loss: 0.0\n", - "Step: 45500 / 100000 loss: 0.0\n", - "Step: 45600 / 100000 loss: 0.0\n", - "Step: 45700 / 100000 loss: 0.0\n", - "Step: 45800 / 100000 loss: 0.0\n", - "Step: 45900 / 100000 loss: 0.0\n", - "Step: 46000 / 100000 loss: 0.0\n", - "Step: 46100 / 100000 loss: 0.0\n", - "Step: 46200 / 100000 loss: 0.0\n", - "Step: 46300 / 100000 loss: 0.0\n", - "Step: 46400 / 100000 loss: 0.0\n", - "Step: 46500 / 100000 loss: 0.0\n", - "Step: 46600 / 100000 loss: 0.0\n", - "Step: 46700 / 100000 loss: 0.0\n", - "Step: 46800 / 100000 loss: 0.0\n", - "Step: 46900 / 100000 loss: 0.0\n", - "Step: 47000 / 100000 loss: 0.0\n", - "Step: 47100 / 100000 loss: 0.0\n", - "Step: 47200 / 100000 loss: 0.0\n", - "Step: 47300 / 100000 loss: 0.0\n", - "Step: 47400 / 100000 loss: 0.0\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Step: 47500 / 100000 loss: 0.0\n", - "Step: 47600 / 100000 loss: 0.0\n", - "Step: 47700 / 100000 loss: 0.0\n", - "Step: 47800 / 100000 loss: 0.0\n", - "Step: 47900 / 100000 loss: 0.0\n", - "Step: 48000 / 100000 loss: 0.0\n", - "Step: 48100 / 100000 loss: 0.0\n", - "Step: 48200 / 100000 loss: 0.0\n", - "Step: 48300 / 100000 loss: 0.0\n", - "Step: 48400 / 100000 loss: 0.0\n", - "Step: 48500 / 100000 loss: 0.0\n", - "Step: 48600 / 100000 loss: 0.0\n", - "Step: 48700 / 100000 loss: 0.0\n", - "Step: 48800 / 100000 loss: 0.0\n", - "Step: 48900 / 100000 loss: 0.0\n", - "Step: 49000 / 100000 loss: 0.0\n", - "Step: 49100 / 100000 loss: 0.0\n", - "Step: 49200 / 100000 loss: 0.0\n", - "Step: 49300 / 100000 loss: 0.0\n", - "Step: 49400 / 100000 loss: 0.0\n", - "Step: 49500 / 100000 loss: 0.0\n", - "Step: 49600 / 100000 loss: 0.0\n", - "Step: 49700 / 100000 loss: 0.0\n", - "Step: 49800 / 100000 loss: 0.0\n", - "Step: 49900 / 100000 loss: 0.0\n", - "Step: 50000 / 100000 loss: 0.0\n", - "Step: 50100 / 100000 loss: 0.0\n", - "Step: 50200 / 100000 loss: 0.0\n", - "Step: 50300 / 100000 loss: 0.0\n", - "Step: 50400 / 100000 loss: 0.0\n", - "Step: 50500 / 100000 loss: 0.0\n", - "Step: 50600 / 100000 loss: 0.0\n", - "Step: 50700 / 100000 loss: 0.0\n", - "Step: 50800 / 100000 loss: 0.0\n", - "Step: 50900 / 100000 loss: 0.0\n", - "Step: 51000 / 100000 loss: 0.0\n", - "Step: 51100 / 100000 loss: 0.0\n", - "Step: 51200 / 100000 loss: 0.0\n", - "Step: 51300 / 100000 loss: 0.0\n", - "Step: 51400 / 100000 loss: 0.0\n", - "Step: 51500 / 100000 loss: 0.0\n", - "Step: 51600 / 100000 loss: 0.0\n", - "Step: 51700 / 100000 loss: 0.0\n", - "Step: 51800 / 100000 loss: 0.0\n", - "Step: 51900 / 100000 loss: 0.0\n", - "Step: 52000 / 100000 loss: 0.0\n", - "Step: 52100 / 100000 loss: 0.0\n", - "Step: 52200 / 100000 loss: 0.0\n", - "Step: 52300 / 100000 loss: 0.0\n", - "Step: 52400 / 100000 loss: 0.0\n", - "Step: 52500 / 100000 loss: 0.0\n", - "Step: 52600 / 100000 loss: 0.0\n", - "Step: 52700 / 100000 loss: 0.0\n", - "Step: 52800 / 100000 loss: 0.0\n", - "Step: 52900 / 100000 loss: 0.0\n", - "Step: 53000 / 100000 loss: 0.0\n", - "Step: 53100 / 100000 loss: 0.0\n", - "Step: 53200 / 100000 loss: 0.0\n", - "Step: 53300 / 100000 loss: 0.0\n", - "Step: 53400 / 100000 loss: 0.0\n", - "Step: 53500 / 100000 loss: 0.0\n", - "Step: 53600 / 100000 loss: 0.0\n", - "Step: 53700 / 100000 loss: 0.0\n", - "Step: 53800 / 100000 loss: 0.0\n", - "Step: 53900 / 100000 loss: 0.0\n", - "Step: 54000 / 100000 loss: 0.0\n", - "Step: 54100 / 100000 loss: 0.0\n", - "Step: 54200 / 100000 loss: 0.0\n", - "Step: 54300 / 100000 loss: 0.0\n", - "Step: 54400 / 100000 loss: 0.0\n", - "Step: 54500 / 100000 loss: 0.0\n", - "Step: 54600 / 100000 loss: 0.0\n", - "Step: 54700 / 100000 loss: 0.0\n", - "Step: 54800 / 100000 loss: 0.0\n", - "Step: 54900 / 100000 loss: 0.0\n", - "Step: 55000 / 100000 loss: 0.0\n", - "Step: 55100 / 100000 loss: 0.0\n", - "Step: 55200 / 100000 loss: 0.0\n", - "Step: 55300 / 100000 loss: 0.0\n", - "Step: 55400 / 100000 loss: 0.0\n", - "Step: 55500 / 100000 loss: 0.0\n", - "Step: 55600 / 100000 loss: 0.0\n", - "Step: 55700 / 100000 loss: 0.0\n", - "Step: 55800 / 100000 loss: 0.0\n", - "Step: 55900 / 100000 loss: 0.0\n", - "Step: 56000 / 100000 loss: 0.0\n", - "Step: 56100 / 100000 loss: 0.0\n", - "Step: 56200 / 100000 loss: 0.0\n", - "Step: 56300 / 100000 loss: 0.0\n", - "Step: 56400 / 100000 loss: 0.0\n", - "Step: 56500 / 100000 loss: 0.0\n", - "Step: 56600 / 100000 loss: 0.0\n", - "Step: 56700 / 100000 loss: 0.0\n", - "Step: 56800 / 100000 loss: 0.0\n", - "Step: 56900 / 100000 loss: 0.0\n", - "Step: 57000 / 100000 loss: 0.0\n", - "Step: 57100 / 100000 loss: 0.0\n", - "Step: 57200 / 100000 loss: 0.0\n", - "Step: 57300 / 100000 loss: 0.0\n", - "Step: 57400 / 100000 loss: 0.0\n", - "Step: 57500 / 100000 loss: 0.0\n", - "Step: 57600 / 100000 loss: 0.0\n", - "Step: 57700 / 100000 loss: 0.0\n", - "Step: 57800 / 100000 loss: 0.0\n", - "Step: 57900 / 100000 loss: 0.0\n", - "Step: 58000 / 100000 loss: 0.0\n", - "Step: 58100 / 100000 loss: 0.0\n", - "Step: 58200 / 100000 loss: 0.0\n", - "Step: 58300 / 100000 loss: 0.0\n", - "Step: 58400 / 100000 loss: 0.0\n", - "Step: 58500 / 100000 loss: 0.0\n", - "Step: 58600 / 100000 loss: 0.0\n", - "Step: 58700 / 100000 loss: 0.0\n", - "Step: 58800 / 100000 loss: 0.0\n", - "Step: 58900 / 100000 loss: 0.0\n", - "Step: 59000 / 100000 loss: 0.0\n", - "Step: 59100 / 100000 loss: 0.0\n", - "Step: 59200 / 100000 loss: 0.0\n", - "Step: 59300 / 100000 loss: 0.0\n", - "Step: 59400 / 100000 loss: 0.0\n", - "Step: 59500 / 100000 loss: 0.0\n", - "Step: 59600 / 100000 loss: 0.0\n", - "Step: 59700 / 100000 loss: 0.0\n", - "Step: 59800 / 100000 loss: 0.0\n", - "Step: 59900 / 100000 loss: 0.0\n", - "Step: 60000 / 100000 loss: 0.0\n", - "Step: 60100 / 100000 loss: 0.0\n", - "Step: 60200 / 100000 loss: 0.0\n", - "Step: 60300 / 100000 loss: 0.0\n", - "Step: 60400 / 100000 loss: 0.0\n", - "Step: 60500 / 100000 loss: 0.0\n", - "Step: 60600 / 100000 loss: 0.0\n", - "Step: 60700 / 100000 loss: 0.0\n", - "Step: 60800 / 100000 loss: 0.0\n", - "Step: 60900 / 100000 loss: 0.0\n", - "Step: 61000 / 100000 loss: 0.0\n", - "Step: 61100 / 100000 loss: 0.0\n", - "Step: 61200 / 100000 loss: 0.0\n", - "Step: 61300 / 100000 loss: 0.0\n", - "Step: 61400 / 100000 loss: 0.0\n", - "Step: 61500 / 100000 loss: 0.0\n", - "Step: 61600 / 100000 loss: 0.0\n", - "Step: 61700 / 100000 loss: 0.0\n", - "Step: 61800 / 100000 loss: 0.0\n", - "Step: 61900 / 100000 loss: 0.0\n", - "Step: 62000 / 100000 loss: 0.0\n", - "Step: 62100 / 100000 loss: 0.0\n", - "Step: 62200 / 100000 loss: 0.0\n", - "Step: 62300 / 100000 loss: 0.0\n", - "Step: 62400 / 100000 loss: 0.0\n", - "Step: 62500 / 100000 loss: 0.0\n", - "Step: 62600 / 100000 loss: 0.0\n", - "Step: 62700 / 100000 loss: 0.0\n", - "Step: 62800 / 100000 loss: 0.0\n", - "Step: 62900 / 100000 loss: 0.0\n", - "Step: 63000 / 100000 loss: 0.0\n", - "Step: 63100 / 100000 loss: 0.0\n", - "Step: 63200 / 100000 loss: 0.0\n", - "Step: 63300 / 100000 loss: 0.0\n", - "Step: 63400 / 100000 loss: 0.0\n", - "Step: 63500 / 100000 loss: 0.0\n", - "Step: 63600 / 100000 loss: 0.0\n", - "Step: 63700 / 100000 loss: 0.0\n", - "Step: 63800 / 100000 loss: 0.0\n", - "Step: 63900 / 100000 loss: 0.0\n", - "Step: 64000 / 100000 loss: 0.0\n", - "Step: 64100 / 100000 loss: 0.0\n", - "Step: 64200 / 100000 loss: 0.0\n", - "Step: 64300 / 100000 loss: 0.0\n", - "Step: 64400 / 100000 loss: 0.0\n", - "Step: 64500 / 100000 loss: 0.0\n", - "Step: 64600 / 100000 loss: 0.0\n", - "Step: 64700 / 100000 loss: 0.0\n", - "Step: 64800 / 100000 loss: 0.0\n", - "Step: 64900 / 100000 loss: 0.0\n", - "Step: 65000 / 100000 loss: 0.0\n", - "Step: 65100 / 100000 loss: 0.0\n", - "Step: 65200 / 100000 loss: 0.0\n", - "Step: 65300 / 100000 loss: 0.0\n", - "Step: 65400 / 100000 loss: 0.0\n", - "Step: 65500 / 100000 loss: 0.0\n", - "Step: 65600 / 100000 loss: 0.0\n", - "Step: 65700 / 100000 loss: 0.0\n", - "Step: 65800 / 100000 loss: 0.0\n", - "Step: 65900 / 100000 loss: 0.0\n", - "Step: 66000 / 100000 loss: 0.0\n", - "Step: 66100 / 100000 loss: 0.0\n", - "Step: 66200 / 100000 loss: 0.0\n", - "Step: 66300 / 100000 loss: 0.0\n", - "Step: 66400 / 100000 loss: 0.0\n", - "Step: 66500 / 100000 loss: 0.0\n", - "Step: 66600 / 100000 loss: 0.0\n", - "Step: 66700 / 100000 loss: 0.0\n", - "Step: 66800 / 100000 loss: 0.0\n", - "Step: 66900 / 100000 loss: 0.0\n", - "Step: 67000 / 100000 loss: 0.0\n", - "Step: 67100 / 100000 loss: 0.0\n", - "Step: 67200 / 100000 loss: 0.0\n", - "Step: 67300 / 100000 loss: 0.0\n", - "Step: 67400 / 100000 loss: 0.0\n", - "Step: 67500 / 100000 loss: 0.0\n", - "Step: 67600 / 100000 loss: 0.0\n", - "Step: 67700 / 100000 loss: 0.0\n", - "Step: 67800 / 100000 loss: 0.0\n", - "Step: 67900 / 100000 loss: 0.0\n", - "Step: 68000 / 100000 loss: 0.0\n", - "Step: 68100 / 100000 loss: 0.0\n", - "Step: 68200 / 100000 loss: 0.0\n", - "Step: 68300 / 100000 loss: 0.0\n", - "Step: 68400 / 100000 loss: 0.0\n", - "Step: 68500 / 100000 loss: 0.0\n", - "Step: 68600 / 100000 loss: 0.0\n", - "Step: 68700 / 100000 loss: 0.0\n", - "Step: 68800 / 100000 loss: 0.0\n", - "Step: 68900 / 100000 loss: 0.0\n", - "Step: 69000 / 100000 loss: 0.0\n", - "Step: 69100 / 100000 loss: 0.0\n", - "Step: 69200 / 100000 loss: 0.0\n", - "Step: 69300 / 100000 loss: 0.0\n", - "Step: 69400 / 100000 loss: 0.0\n", - "Step: 69500 / 100000 loss: 0.0\n", - "Step: 69600 / 100000 loss: 0.0\n", - "Step: 69700 / 100000 loss: 0.0\n", - "Step: 69800 / 100000 loss: 0.0\n", - "Step: 69900 / 100000 loss: 0.0\n", - "Step: 70000 / 100000 loss: 0.0\n", - "Step: 70100 / 100000 loss: 0.0\n", - "Step: 70200 / 100000 loss: 0.0\n", - "Step: 70300 / 100000 loss: 0.0\n", - "Step: 70400 / 100000 loss: 0.0\n", - "Step: 70500 / 100000 loss: 0.0\n", - "Step: 70600 / 100000 loss: 0.0\n", - "Step: 70700 / 100000 loss: 0.0\n", - "Step: 70800 / 100000 loss: 0.0\n", - "Step: 70900 / 100000 loss: 0.0\n", - "Step: 71000 / 100000 loss: 0.0\n", - "Step: 71100 / 100000 loss: 0.0\n", - "Step: 71200 / 100000 loss: 0.0\n", - "Step: 71300 / 100000 loss: 0.0\n", - "Step: 71400 / 100000 loss: 0.0\n", - "Step: 71500 / 100000 loss: 0.0\n", - "Step: 71600 / 100000 loss: 0.0\n", - "Step: 71700 / 100000 loss: 0.0\n", - "Step: 71800 / 100000 loss: 0.0\n", - "Step: 71900 / 100000 loss: 0.0\n", - "Step: 72000 / 100000 loss: 0.0\n", - "Step: 72100 / 100000 loss: 0.0\n", - "Step: 72200 / 100000 loss: 0.0\n", - "Step: 72300 / 100000 loss: 0.0\n", - "Step: 72400 / 100000 loss: 0.0\n", - "Step: 72500 / 100000 loss: 0.0\n", - "Step: 72600 / 100000 loss: 0.0\n", - "Step: 72700 / 100000 loss: 0.0\n", - "Step: 72800 / 100000 loss: 0.0\n", - "Step: 72900 / 100000 loss: 0.0\n", - "Step: 73000 / 100000 loss: 0.0\n", - "Step: 73100 / 100000 loss: 0.0\n", - "Step: 73200 / 100000 loss: 0.0\n", - "Step: 73300 / 100000 loss: 0.0\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Step: 73400 / 100000 loss: 0.0\n", - "Step: 73500 / 100000 loss: 0.0\n", - "Step: 73600 / 100000 loss: 0.0\n", - "Step: 73700 / 100000 loss: 0.0\n", - "Step: 73800 / 100000 loss: 0.0\n", - "Step: 73900 / 100000 loss: 0.0\n", - "Step: 74000 / 100000 loss: 0.0\n", - "Step: 74100 / 100000 loss: 0.0\n", - "Step: 74200 / 100000 loss: 0.0\n", - "Step: 74300 / 100000 loss: 0.0\n", - "Step: 74400 / 100000 loss: 0.0\n", - "Step: 74500 / 100000 loss: 0.0\n", - "Step: 74600 / 100000 loss: 0.0\n", - "Step: 74700 / 100000 loss: 0.0\n", - "Step: 74800 / 100000 loss: 0.0\n", - "Step: 74900 / 100000 loss: 0.0\n", - "Step: 75000 / 100000 loss: 0.0\n", - "Step: 75100 / 100000 loss: 0.0\n", - "Step: 75200 / 100000 loss: 0.0\n", - "Step: 75300 / 100000 loss: 0.0\n", - "Step: 75400 / 100000 loss: 0.0\n", - "Step: 75500 / 100000 loss: 0.0\n", - "Step: 75600 / 100000 loss: 0.0\n", - "Step: 75700 / 100000 loss: 0.0\n", - "Step: 75800 / 100000 loss: 0.0\n", - "Step: 75900 / 100000 loss: 0.0\n", - "Step: 76000 / 100000 loss: 0.0\n", - "Step: 76100 / 100000 loss: 0.0\n", - "Step: 76200 / 100000 loss: 0.0\n", - "Step: 76300 / 100000 loss: 0.0\n", - "Step: 76400 / 100000 loss: 0.0\n", - "Step: 76500 / 100000 loss: 0.0\n", - "Step: 76600 / 100000 loss: 0.0\n", - "Step: 76700 / 100000 loss: 0.0\n", - "Step: 76800 / 100000 loss: 0.0\n", - "Step: 76900 / 100000 loss: 0.0\n", - "Step: 77000 / 100000 loss: 0.0\n", - "Step: 77100 / 100000 loss: 0.0\n", - "Step: 77200 / 100000 loss: 0.0\n", - "Step: 77300 / 100000 loss: 0.0\n", - "Step: 77400 / 100000 loss: 0.0\n", - "Step: 77500 / 100000 loss: 0.0\n", - "Step: 77600 / 100000 loss: 0.0\n", - "Step: 77700 / 100000 loss: 0.0\n", - "Step: 77800 / 100000 loss: 0.0\n", - "Step: 77900 / 100000 loss: 0.0\n", - "Step: 78000 / 100000 loss: 0.0\n", - "Step: 78100 / 100000 loss: 0.0\n", - "Step: 78200 / 100000 loss: 0.0\n", - "Step: 78300 / 100000 loss: 0.0\n", - "Step: 78400 / 100000 loss: 0.0\n", - "Step: 78500 / 100000 loss: 0.0\n", - "Step: 78600 / 100000 loss: 0.0\n", - "Step: 78700 / 100000 loss: 0.0\n", - "Step: 78800 / 100000 loss: 0.0\n", - "Step: 78900 / 100000 loss: 0.0\n", - "Step: 79000 / 100000 loss: 0.0\n", - "Step: 79100 / 100000 loss: 0.0\n", - "Step: 79200 / 100000 loss: 0.0\n", - "Step: 79300 / 100000 loss: 0.0\n", - "Step: 79400 / 100000 loss: 0.0\n", - "Step: 79500 / 100000 loss: 0.0\n", - "Step: 79600 / 100000 loss: 0.0\n", - "Step: 79700 / 100000 loss: 0.0\n", - "Step: 79800 / 100000 loss: 0.0\n", - "Step: 79900 / 100000 loss: 0.0\n", - "Step: 80000 / 100000 loss: 0.0\n", - "Step: 80100 / 100000 loss: 0.0\n", - "Step: 80200 / 100000 loss: 0.0\n", - "Step: 80300 / 100000 loss: 0.0\n", - "Step: 80400 / 100000 loss: 0.0\n", - "Step: 80500 / 100000 loss: 0.0\n", - "Step: 80600 / 100000 loss: 0.0\n", - "Step: 80700 / 100000 loss: 0.0\n", - "Step: 80800 / 100000 loss: 0.0\n", - "Step: 80900 / 100000 loss: 0.0\n", - "Step: 81000 / 100000 loss: 0.0\n", - "Step: 81100 / 100000 loss: 0.0\n", - "Step: 81200 / 100000 loss: 0.0\n", - "Step: 81300 / 100000 loss: 0.0\n", - "Step: 81400 / 100000 loss: 0.0\n", - "Step: 81500 / 100000 loss: 0.0\n", - "Step: 81600 / 100000 loss: 0.0\n", - "Step: 81700 / 100000 loss: 0.0\n", - "Step: 81800 / 100000 loss: 0.0\n", - "Step: 81900 / 100000 loss: 0.0\n", - "Step: 82000 / 100000 loss: 0.0\n", - "Step: 82100 / 100000 loss: 0.0\n", - "Step: 82200 / 100000 loss: 0.0\n", - "Step: 82300 / 100000 loss: 0.0\n", - "Step: 82400 / 100000 loss: 0.0\n", - "Step: 82500 / 100000 loss: 0.0\n", - "Step: 82600 / 100000 loss: 0.0\n", - "Step: 82700 / 100000 loss: 0.0\n", - "Step: 82800 / 100000 loss: 0.0\n", - "Step: 82900 / 100000 loss: 0.0\n", - "Step: 83000 / 100000 loss: 0.0\n", - "Step: 83100 / 100000 loss: 0.0\n", - "Step: 83200 / 100000 loss: 0.0\n", - "Step: 83300 / 100000 loss: 0.0\n", - "Step: 83400 / 100000 loss: 0.0\n", - "Step: 83500 / 100000 loss: 0.0\n", - "Step: 83600 / 100000 loss: 0.0\n", - "Step: 83700 / 100000 loss: 0.0\n", - "Step: 83800 / 100000 loss: 0.0\n", - "Step: 83900 / 100000 loss: 0.0\n", - "Step: 84000 / 100000 loss: 0.0\n", - "Step: 84100 / 100000 loss: 0.0\n", - "Step: 84200 / 100000 loss: 0.0\n", - "Step: 84300 / 100000 loss: 0.0\n", - "Step: 84400 / 100000 loss: 0.0\n", - "Step: 84500 / 100000 loss: 0.0\n", - "Step: 84600 / 100000 loss: 0.0\n", - "Step: 84700 / 100000 loss: 0.0\n", - "Step: 84800 / 100000 loss: 0.0\n", - "Step: 84900 / 100000 loss: 0.0\n", - "Step: 85000 / 100000 loss: 0.0\n", - "Step: 85100 / 100000 loss: 0.0\n", - "Step: 85200 / 100000 loss: 0.0\n", - "Step: 85300 / 100000 loss: 0.0\n", - "Step: 85400 / 100000 loss: 0.0\n", - "Step: 85500 / 100000 loss: 0.0\n", - "Step: 85600 / 100000 loss: 0.0\n", - "Step: 85700 / 100000 loss: 0.0\n", - "Step: 85800 / 100000 loss: 0.0\n", - "Step: 85900 / 100000 loss: 0.0\n", - "Step: 86000 / 100000 loss: 0.0\n", - "Step: 86100 / 100000 loss: 0.0\n", - "Step: 86200 / 100000 loss: 0.0\n", - "Step: 86300 / 100000 loss: 0.0\n", - "Step: 86400 / 100000 loss: 0.0\n", - "Step: 86500 / 100000 loss: 0.0\n", - "Step: 86600 / 100000 loss: 0.0\n", - "Step: 86700 / 100000 loss: 0.0\n", - "Step: 86800 / 100000 loss: 0.0\n", - "Step: 86900 / 100000 loss: 0.0\n", - "Step: 87000 / 100000 loss: 0.0\n", - "Step: 87100 / 100000 loss: 0.0\n", - "Step: 87200 / 100000 loss: 0.0\n", - "Step: 87300 / 100000 loss: 0.0\n", - "Step: 87400 / 100000 loss: 0.0\n", - "Step: 87500 / 100000 loss: 0.0\n", - "Step: 87600 / 100000 loss: 0.0\n", - "Step: 87700 / 100000 loss: 0.0\n", - "Step: 87800 / 100000 loss: 0.0\n", - "Step: 87900 / 100000 loss: 0.0\n", - "Step: 88000 / 100000 loss: 0.0\n", - "Step: 88100 / 100000 loss: 0.0\n", - "Step: 88200 / 100000 loss: 0.0\n", - "Step: 88300 / 100000 loss: 0.0\n", - "Step: 88400 / 100000 loss: 0.0\n", - "Step: 88500 / 100000 loss: 0.0\n", - "Step: 88600 / 100000 loss: 0.0\n", - "Step: 88700 / 100000 loss: 0.0\n", - "Step: 88800 / 100000 loss: 0.0\n", - "Step: 88900 / 100000 loss: 0.0\n", - "Step: 89000 / 100000 loss: 0.0\n", - "Step: 89100 / 100000 loss: 0.0\n", - "Step: 89200 / 100000 loss: 0.0\n", - "Step: 89300 / 100000 loss: 0.0\n", - "Step: 89400 / 100000 loss: 0.0\n", - "Step: 89500 / 100000 loss: 0.0\n", - "Step: 89600 / 100000 loss: 0.0\n", - "Step: 89700 / 100000 loss: 0.0\n", - "Step: 89800 / 100000 loss: 0.0\n", - "Step: 89900 / 100000 loss: 0.0\n", - "Step: 90000 / 100000 loss: 0.0\n", - "Step: 90100 / 100000 loss: 0.0\n", - "Step: 90200 / 100000 loss: 0.0\n", - "Step: 90300 / 100000 loss: 0.0\n", - "Step: 90400 / 100000 loss: 0.0\n", - "Step: 90500 / 100000 loss: 0.0\n", - "Step: 90600 / 100000 loss: 0.0\n", - "Step: 90700 / 100000 loss: 0.0\n", - "Step: 90800 / 100000 loss: 0.0\n", - "Step: 90900 / 100000 loss: 0.0\n", - "Step: 91000 / 100000 loss: 0.0\n", - "Step: 91100 / 100000 loss: 0.0\n", - "Step: 91200 / 100000 loss: 0.0\n", - "Step: 91300 / 100000 loss: 0.0\n", - "Step: 91400 / 100000 loss: 0.0\n", - "Step: 91500 / 100000 loss: 0.0\n", - "Step: 91600 / 100000 loss: 0.0\n", - "Step: 91700 / 100000 loss: 0.0\n", - "Step: 91800 / 100000 loss: 0.0\n", - "Step: 91900 / 100000 loss: 0.0\n", - "Step: 92000 / 100000 loss: 0.0\n", - "Step: 92100 / 100000 loss: 0.0\n", - "Step: 92200 / 100000 loss: 0.0\n", - "Step: 92300 / 100000 loss: 0.0\n", - "Step: 92400 / 100000 loss: 0.0\n", - "Step: 92500 / 100000 loss: 0.0\n", - "Step: 92600 / 100000 loss: 0.0\n", - "Step: 92700 / 100000 loss: 0.0\n", - "Step: 92800 / 100000 loss: 0.0\n", - "Step: 92900 / 100000 loss: 0.0\n", - "Step: 93000 / 100000 loss: 0.0\n", - "Step: 93100 / 100000 loss: 0.0\n", - "Step: 93200 / 100000 loss: 0.0\n", - "Step: 93300 / 100000 loss: 0.0\n", - "Step: 93400 / 100000 loss: 0.0\n", - "Step: 93500 / 100000 loss: 0.0\n", - "Step: 93600 / 100000 loss: 0.0\n", - "Step: 93700 / 100000 loss: 0.0\n", - "Step: 93800 / 100000 loss: 0.0\n", - "Step: 93900 / 100000 loss: 0.0\n", - "Step: 94000 / 100000 loss: 0.0\n", - "Step: 94100 / 100000 loss: 0.0\n", - "Step: 94200 / 100000 loss: 0.0\n", - "Step: 94300 / 100000 loss: 0.0\n", - "Step: 94400 / 100000 loss: 0.0\n", - "Step: 94500 / 100000 loss: 0.0\n", - "Step: 94600 / 100000 loss: 0.0\n", - "Step: 94700 / 100000 loss: 0.0\n", - "Step: 94800 / 100000 loss: 0.0\n", - "Step: 94900 / 100000 loss: 0.0\n", - "Step: 95000 / 100000 loss: 0.0\n", - "Step: 95100 / 100000 loss: 0.0\n", - "Step: 95200 / 100000 loss: 0.0\n", - "Step: 95300 / 100000 loss: 0.0\n", - "Step: 95400 / 100000 loss: 0.0\n", - "Step: 95500 / 100000 loss: 0.0\n", - "Step: 95600 / 100000 loss: 0.0\n", - "Step: 95700 / 100000 loss: 0.0\n", - "Step: 95800 / 100000 loss: 0.0\n", - "Step: 95900 / 100000 loss: 0.0\n", - "Step: 96000 / 100000 loss: 0.0\n", - "Step: 96100 / 100000 loss: 0.0\n", - "Step: 96200 / 100000 loss: 0.0\n", - "Step: 96300 / 100000 loss: 0.0\n", - "Step: 96400 / 100000 loss: 0.0\n", - "Step: 96500 / 100000 loss: 0.0\n", - "Step: 96600 / 100000 loss: 0.0\n", - "Step: 96700 / 100000 loss: 0.0\n", - "Step: 96800 / 100000 loss: 0.0\n", - "Step: 96900 / 100000 loss: 0.0\n", - "Step: 97000 / 100000 loss: 0.0\n", - "Step: 97100 / 100000 loss: 0.0\n", - "Step: 97200 / 100000 loss: 0.0\n", - "Step: 97300 / 100000 loss: 0.0\n", - "Step: 97400 / 100000 loss: 0.0\n", - "Step: 97500 / 100000 loss: 0.0\n", - "Step: 97600 / 100000 loss: 0.0\n", - "Step: 97700 / 100000 loss: 0.0\n", - "Step: 97800 / 100000 loss: 0.0\n", - "Step: 97900 / 100000 loss: 0.0\n", - "Step: 98000 / 100000 loss: 0.0\n", - "Step: 98100 / 100000 loss: 0.0\n", - "Step: 98200 / 100000 loss: 0.0\n", - "Step: 98300 / 100000 loss: 0.0\n", - "Step: 98400 / 100000 loss: 0.0\n", - "Step: 98500 / 100000 loss: 0.0\n", - "Step: 98600 / 100000 loss: 0.0\n", - "Step: 98700 / 100000 loss: 0.0\n", - "Step: 98800 / 100000 loss: 0.0\n", - "Step: 98900 / 100000 loss: 0.0\n", - "Step: 99000 / 100000 loss: 0.0\n", - "Step: 99100 / 100000 loss: 0.0\n", - "Step: 99200 / 100000 loss: 0.0\n", - "Step: 99300 / 100000 loss: 0.0\n", - "Step: 99400 / 100000 loss: 0.0\n", - "Step: 99500 / 100000 loss: 0.0\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Step: 99600 / 100000 loss: 0.0\n", - "Step: 99700 / 100000 loss: 0.0\n", - "Step: 99800 / 100000 loss: 0.0\n", - "Step: 99900 / 100000 loss: 0.0\n" - ] - } - ], - "source": [ - "import tensorflow.compat.v1 as tf\n", - "tf.disable_v2_behavior()\n", - "tf.reset_default_graph()\n", - "# tf.set_random_seed(343)\n", - "\n", - "# import tensorflow as tf\n", - "import numpy as np\n", - "from matplotlib import cm\n", - "from matplotlib import pyplot as plt\n", - "from mpl_toolkits.mplot3d import axes3d\n", - "#from lib import compute_dx_dt\n", - "\n", - "matrix_size = 6\n", - "\n", - "A = np.random.random_sample(size=(matrix_size,matrix_size))\n", - "A = (A.T + A)/2.0\n", - "start_matrix = A\n", - "\n", - "eigen_vals, eigen_vecs = np.linalg.eig(A)\n", - "\n", - "A = tf.convert_to_tensor(A)\n", - "print(\"A = \", A)\n", - "\n", - "x_0 = tf.convert_to_tensor(np.random.random_sample(size = (1,matrix_size)))\n", - "print(\"x0 = \", x_0)\n", - "\n", - "## The construction phase\n", - "\n", - "num_iter = 100000\n", - "num_hidden_neurons = [50]\n", - "num_hidden_layers = np.size(num_hidden_neurons)\n", - "\n", - "\n", - "with tf.variable_scope('dnn'):\n", - "\n", - " previous_layer = x_0\n", - "\n", - " for l in range(num_hidden_layers):\n", - " current_layer = tf.layers.dense(previous_layer, num_hidden_neurons[l],activation=tf.nn.sigmoid)\n", - " previous_layer = current_layer\n", - "\n", - " dnn_output = tf.layers.dense(previous_layer, matrix_size)\n", - "\n", - "with tf.name_scope('loss'):\n", - " print(\"dnn_output = \", dnn_output)\n", - " \n", - " x_trial = tf.transpose(dnn_output)\n", - " print(\"x_trial = \", x_trial)\n", - " \n", - " temp1 = (tf.tensordot(tf.transpose(x_trial), x_trial, axes=1)*A)\n", - " temp2 = (1- tf.tensordot(tf.transpose(x_trial), tf.tensordot(A, x_trial, axes=1), axes=1))*np.eye(matrix_size)\n", - " func = tf.tensordot((temp1-temp2), x_trial, axes=1)\n", - " \n", - " print(temp1)\n", - " print(temp2)\n", - " print(func)\n", - " \n", - " func = tf.transpose(func)\n", - " x_trial = tf.transpose(x_trial)\n", - " \n", - " loss = tf.losses.mean_squared_error(func, x_trial)\n", - "\n", - "learning_rate = 0.001\n", - "\n", - "with tf.name_scope('train'):\n", - " optimizer = tf.train.GradientDescentOptimizer(learning_rate)\n", - " traning_op = optimizer.minimize(loss)\n", - "\n", - "init = tf.global_variables_initializer()\n", - "\n", - "g_dnn = None\n", - "\n", - "losses = []\n", - "\n", - "with tf.Session() as sess:\n", - " init.run()\n", - " for i in range(num_iter):\n", - " sess.run(traning_op)\n", - "\n", - " if i % 100 == 0:\n", - " l = loss.eval()\n", - " print(\"Step:\", i, \"/\",num_iter, \"loss: \", l)\n", - " losses.append(l)\n", - "\n", - " x_dnn = x_trial.eval()\n", - "x_dnn = x_dnn.T" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Plotting loss over time" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'Loss')" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(losses[:5])\n", - "plt.xlabel(\"Iteration\")\n", - "plt.ylabel(\"Loss\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Printing eigenvector and eigenvalues" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Eigenvector NN = \n", - " [[0.39102385]\n", - " [0.41813081]\n", - " [0.4112727 ]\n", - " [0.42373881]\n", - " [0.31962169]\n", - " [0.47054133]] \n", - "\n", - "Eigenvalue NN = \n", - " [[3.32927854]] \n", - " \n", - "\n", - "Eigenvector analytic = \n", - " [[ 0.39102384 0.37327188 0.68249482 0.19314131 0.43158254 -0.13565482]\n", - " [ 0.41813082 -0.21544287 0.0517078 -0.85524846 0.04349033 -0.20672676]\n", - " [ 0.4112727 -0.78668253 0.1648857 0.34671246 -0.02876616 0.25250949]\n", - " [ 0.42373881 0.32112534 0.09676804 0.07916383 -0.83656144 0.04310365]\n", - " [ 0.31962169 -0.03283447 -0.4622512 0.32363834 0.08752416 -0.75543726]\n", - " [ 0.47054132 0.30196602 -0.53037685 0.00531919 0.32174849 0.55005219]]\n", - "\n", - "\n", - "Eigenvalues analytic = \n", - " [ 3.32927854 -0.93859 -0.71386523 0.60372286 0.19411317 -0.14395577]\n" - ] - } - ], - "source": [ - "print(\"Eigenvector NN = \\n\", (x_dnn/(x_dnn**2).sum()**0.5), \"\\n\")\n", - "\n", - "eigen_val_nn = x_dnn.T @ (start_matrix @ x_dnn) / (x_dnn.T @ x_dnn)\n", - "\n", - "print(\"Eigenvalue NN = \\n\", eigen_val_nn, \"\\n \\n\")\n", - "print(\"Eigenvector analytic = \\n\", eigen_vecs)\n", - "print(\"\\n\")\n", - "print(\"Eigenvalues analytic = \\n\",eigen_vals)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -}