Why do I get the message “Python DeprecationWrapper with no properties” when I try to load a Python module in MATLAB?
조회 수: 19 (최근 30일)
이전 댓글 표시
MathWorks Support Team
2021년 4월 20일
답변: MathWorks Support Team
2021년 4월 20일
As an example, when I try to import TensorFlow (version 1.14.0) in MATLAB R2020b with Python 3.7.9 I get the following message
>> py.importlib.import_module('tensorflow')
ans =
Python DeprecationWrapper with no properties.
<module 'tensorflow' from 'C:\\Users\\<username>\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages\\tensorflow\\__init__.py'>
Why am I getting this message and how can I load my module?
채택된 답변
MathWorks Support Team
2021년 4월 20일
This issue stems from a Python warning(s) that some features will be deprecated in the future. If you attempt to import a deprecated version of TensorFlow directly into Python you will see these types of messages:
Python 3.7.9 (tags/v3.7.9:13c94747c7, Aug 17 2020, 18:58:18) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
C:\Users\<username>\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint8 = np.dtype([("qint8", np.int8, 1)])
...
Attempting to import a module with deprecation warnings into MATLAB will return a Python DeprecationWrapper object with no properties. In these cases, the best solution is to update to a newer version of the module.
If updating to a newer version is not feasible, you can try the following workaround using Python’s getattr function. The example, below, uses the previous TensorFlow example with a workaround to access the TensorFlow constant function.
>> m = py.importlib.import_module('tensorflow');
>> f = py.getattr(m,'constant')
f =
Python function with no properties.
<function constant_v1 at 0x0000026AA97FA798>
>> c = f(1)
c =
Python Tensor with properties:
device: [1×0 py.str]
dtype: [1×1 py.tensorflow.python.framework.dtypes.DType]
graph: [1×1 py.tensorflow.python.framework.ops.Graph]
name: [1×7 py.str]
op: [1×1 py.tensorflow.python.framework.ops.Operation]
shape: [1×1 py.tensorflow.python.framework.tensor_shape.TensorShape]
value_index: [1×1 py.int]
Tensor("Const:0", shape=(), dtype=float32)
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!