Files
FYS-STK4155/doc/Programs/EigenvaluesDeepLearning/eigen_tf1_working.ipynb
T
2019-12-11 09:03:43 +01:00

1281 lines
62 KiB
Plaintext

{
"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 <ipython-input-3-fcdc6fc989db>: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": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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
}