call matlab neural network function from matlab python engine -


i trying use matlab neural network toolbox matlab python engine.

suppose example want emulate following example http://uk.mathworks.com/help/nnet/ref/fitnet.html

net = fitnet(10); net = train(net,x,t); view(net) y = net(x); perf = perform(net,y,t) 

then have following python code:

import numpy np import sys sys.path.insert(0, '/home/donbeo/myapp/matlab_python_engine/installdir/lib/python3.4/site-packages/')         n = 100     x = np.linspace(-10, 10, n)     y = x**3 + x*2 + x + np.random.normal(0, .1, n)     plt.plot(x, y)     plt.show()      import matlab.engine     eng = matlab.engine.start_matlab()     eng.net = eng.fitnet(10.);     eng.net = eng.train(eng.net,x,t);     y_est = eng.net(x);      eng.quit() 

when run line eng.net = eng.fitnet(10.);

i following error:

in [24]: --------------------------------------------------------------------------- typeerror                                 traceback (most recent call last) <ipython-input-24-cc577dcdc93c> in <module>() ----> 1 eng.net = eng.fitnet(10.);  /home/donbeo/myapp/matlab_python_engine/installdir/lib/python3.4/site-packages/matlab/engine/matlabengine.py in __call__(self, *args, **kwargs)      77         else:      78             return futureresult(self._engine(), future, nargs, _stdout, ---> 79                                 _stderr).result()      80       81     def __validate_engine(self):  /home/donbeo/myapp/matlab_python_engine/installdir/lib/python3.4/site-packages/matlab/engine/futureresult.py in result(self, timeout)     105      106             self._result = pythonengine.getfevalresult( --> 107                 self._future,self._nargout, none, out=self._out, err=self._err)     108             self._retrieved = true     109             return self._result  typeerror: unsupported datatype returned matlab.  in [25]:  

how can solve?

edit:

the command eng.net = eng.fitnet(10);

returns :

error using network/subsasgn>network_subsasgn (line 553) "layers{1}.size" must positive integer.  error in network/subsasgn (line 13) net = network_subsasgn(net,subscripts,v,netname);  error in feedforwardnet>create_network (line 116)       net.layers{i}.size = param.hiddensizes(i);  error in feedforwardnet (line 69)     net = create_network(param);  error in fitnet>create_network (line 98)   net = feedforwardnet(param.hiddensizes,param.trainfcn);  error in fitnet (line 70)     net = create_network(param);  --------------------------------------------------------------------------- matlabexecutionerror                      traceback (most recent call last) <ipython-input-29-480a6805679e> in <module>() ----> 1 eng.net = eng.fitnet(10);  /home/donbeo/myapp/matlab_python_engine/installdir/lib/python3.4/site-packages/matlab/engine/matlabengine.py in __call__(self, *args, **kwargs)      77         else:      78             return futureresult(self._engine(), future, nargs, _stdout, ---> 79                                 _stderr).result()      80       81     def __validate_engine(self):  /home/donbeo/myapp/matlab_python_engine/installdir/lib/python3.4/site-packages/matlab/engine/futureresult.py in result(self, timeout)     105      106             self._result = pythonengine.getfevalresult( --> 107                 self._future,self._nargout, none, out=self._out, err=self._err)     108             self._retrieved = true     109             return self._result  matlabexecutionerror:    file /home/donbeo/myapp/matlabr2015a/toolbox/nnet/nnet/@network/subsasgn.p, line 553, in network_subsasgn    file /home/donbeo/myapp/matlabr2015a/toolbox/nnet/nnet/@network/subsasgn.p, line 13, in subsasgn    file /home/donbeo/myapp/matlabr2015a/toolbox/nnet/nnet/nnnetwork/feedforwardnet.m, line 116, in create_network    file /home/donbeo/myapp/matlabr2015a/toolbox/nnet/nnet/nnnetwork/feedforwardnet.m, line 69, in feedforwardnet    file /home/donbeo/myapp/matlabr2015a/toolbox/nnet/nnet/nnnetwork/fitnet.m, line 98, in create_network    file /home/donbeo/myapp/matlabr2015a/toolbox/nnet/nnet/nnnetwork/fitnet.m, line 70, in fitnet "layers{1}.size" must positive integer.   in [30]:  

the best thing in circumstances create matlab function can perform required actions , return python variables, can understand. matlab objects python cant understand best control objects in matlab, load them , save them in matlab every time call matlab engine operate. other solution use handle objects that's not perfect solution, each solution has ups , downs.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -