In [1]:
# Необходмые команды импорта.
import sys
#import os
sys.path.append('../physlearn/')
sys.path.append('../source')
import numpy as np
from numpy import linalg as LA
import tensorflow as tf
from matplotlib import pylab as plt
from IPython.display import clear_output
from physlearn.NeuralNet.NeuralNet import NeuralNet
from physlearn.Optimizer.NelderMead.NelderMead import NelderMead
from CostFunction import CostFunction
import d1_osc
import ann_constructor
import math_util
from visualiser import Visualiser

# Model Parameters
n_hid1 = 12
m = 350 # размер сеток обучения
M = 4 # количество выходных нейронов(базисных функций)
a = -6
b = 6
n_hid2 = 12
%matplotlib inline


D:\Anaconda\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters

In [2]:
# ANN
net, net_output, net_sum, sess = ann_constructor.return_separated_deep_net_expressions(M, n_hid1, n_hid2)
# Выражение, определяющеие образ выходов сети при действии гамильтонианом. Task-dependant

dim = net.return_unroll_dim()
print(dim)


772

In [3]:
cost_function = CostFunction(net, 'gaus')
cost_function.define_approximation_grid(a, b, m)
cost_function.define_linearity_grid(M)
cost_function.compile()
J = cost_function.get_cost_func()

# Оптимизация
opt_nm = NelderMead(-2.5,2.5)
opt_nm.set_epsilon_and_sd(0.3, 100)

In [4]:
optimisation_result = opt_nm.optimize(J, dim+1, 10**6, 10**(-2))
print("J after optimisation: ", J(optimisation_result.x))
print("Ебала: ", optimisation_result)


..   999821 (99%) 188.206 it\s
J after optimisation:  0.056289526744515275
Ебала:  Is converge: False
Amount of iterations: 1000000
Total time: 5313.30 s
Reached function value: 0.056289526744515275
Reason of break: Maximum iterations reached

...  1000000 (100%) 188.206 it\s

In [ ]:


In [9]:
from visualiser import Visualiser2

In [10]:
vis = Visualiser2(net, cost_function.trial_func, M)
vis.plot_four(np.linspace(-5, 5, m, endpoint=True).reshape(1, m) )


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-10-30642e11f384> in <module>()
      1 vis = Visualiser2(net, cost_function.trial_func, M)
----> 2 vis.plot_four(np.linspace(-5, 5, m, endpoint=True).reshape(1, m) )

~\GitKraken\SPBU_COMP_PHYS_NN_QM\source\visualiser.py in plot_four(self, x)
    142         plt.plot(x[0], y)
    143 
--> 144     def plot_four(self, x):
    145         y1 = self.__funcs_value(x)
    146         y2 = self.__images_value(x)

~\GitKraken\SPBU_COMP_PHYS_NN_QM\source\visualiser.py in __funcs_value(self, x)
    172         fig.subplots_adjust(left = 0, bottom = 0, right = 2, top = 2, hspace = 0.2, wspace = 0.2)
    173 
--> 174     def __funcs_value(self, x):
    175         return self.net.calc(self.trial_func, {self.net.x : x})
    176 

AttributeError: 'Visualiser2' object has no attribute 'net'

In [ ]:
y1 = 
for i in range(self.M):
    func_i = y1[i,:]
    plt.plot(x[0], func_i)