Error while calling a Python Module
4 views (last 30 days)
Show older comments
The Setup: I have a deep net model trained in python (using keras and tensorflow packages). I saved the model file as a json file and weights in h5 format. I wrote a simple Python script that takes two arrays as input, runs the learned model and returns a prediction. My main file in matlab is providing the inputs to the python file, calling it to return a prediction, and then continues to do further computation on it.
The Problem: Everytime I call the python module from matlab, I get the following error: "Python Error: AttributeError: 'array.array' object has no attribute 'reshape'" My model in python requires a 4D array. Since I figured earlier, the hard way, that one can't pass a multi-dimensional array from matlab to python, I'm passing a 1D array to python and doing the necessary conversion there itself. While, the error says I can't reshape, when I run the same commands through the python interpreter, they work.
Any help to resolve this is much appreciated. Thanks!
2 Comments
Robert Snoeberger
on 10 Feb 2017
Edited: Robert Snoeberger
on 10 Feb 2017
To respond to your comment "when I run the same commands through the python interpreter, they work", the following is a way to hit the same error with the python interpreter.
>>> import array
>>> a = array.array('d', range(20))
>>> a.reshape((2,10))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'array.array' object has no attribute 'reshape'
>>>
Maybe a solution for the above will fix your issue.
Answers (0)
See Also
Categories
Find more on Call Python from MATLAB in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!