python - "El sinónimo de tipo está en desuso; en una versión futura de numpy, se entenderá como(type,(1,))/''(1,) type''. ”problema en TensorFlow
python-3.x artificial-intelligence (3)
Instalé TensorFlow 1.10.1 pero cuando intenté importar TensorFlow me dijo que necesitaba TensorFlow versión 1.10.0. Por lo tanto, lo instalé y ahora recibo las siguientes advertencias:
>>> import tensorflow
C:/Users/PC/Anaconda3/envs/tut/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)])
C:/Users/PC/Anaconda3/envs/tut/lib/site-packages/tensorflow/python/framework/dtypes.py:517: 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_quint8 = np.dtype([("quint8", np.uint8, 1)])
C:/Users/PC/Anaconda3/envs/tut/lib/site-packages/tensorflow/python/framework/dtypes.py:518: 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_qint16 = np.dtype([("qint16", np.int16, 1)])
C:/Users/PC/Anaconda3/envs/tut/lib/site-packages/tensorflow/python/framework/dtypes.py:519: 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_quint16 = np.dtype([("quint16", np.uint16, 1)])
C:/Users/PC/Anaconda3/envs/tut/lib/site-packages/tensorflow/python/framework/dtypes.py:520: 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_qint32 = np.dtype([("qint32", np.int32, 1)])
C:/Users/PC/Anaconda3/envs/tut/lib/site-packages/tensorflow/python/framework/dtypes.py:525: 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_resource = np.dtype([("resource", np.ubyte, 1)])
C:/Users/PC/Anaconda3/envs/tut/lib/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: 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)])
C:/Users/PC/Anaconda3/envs/tut/lib/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: 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_quint8 = np.dtype([("quint8", np.uint8, 1)])
C:/Users/PC/Anaconda3/envs/tut/lib/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: 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_qint16 = np.dtype([("qint16", np.int16, 1)])
C:/Users/PC/Anaconda3/envs/tut/lib/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: 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_quint16 = np.dtype([("quint16", np.uint16, 1)])
C:/Users/PC/Anaconda3/envs/tut/lib/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: 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_qint32 = np.dtype([("qint32", np.int32, 1)])
C:/Users/PC/Anaconda3/envs/tut/lib/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: 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_resource = np.dtype([("resource", np.ubyte, 1)])
Es solo una advertencia, no un error. Ocurre porque su versión actual de libray numpy no es compatible con la versión de tensorflow. Necesita degradar la versión numpy.
tensorflow 1.10.0
tiene un requisito
numpy<=1.14.5,>=1.13.3
, pero debe tener instalada una versión superior (este mensaje de advertencia aparece con la versión numpy más reciente 1.17.0).
Las últimas notas de lanzamiento numpy (1.17) tienen:
Future Changes
Shape-1 fields in dtypes won’t be collapsed to scalars in a future version
Currently, a field specified as [(name, dtype, 1)] or "1type" is interpreted
as a scalar field (i.e., the same as [(name, dtype)] or [(name, dtype, ()]).
This now raises a FutureWarning; in a future version, it will be interpreted
as a shape-(1,) field, i.e. the same as [(name, dtype, (1,))] or "(1,)type"
(consistently with [(name, dtype, n)] / "ntype" with n>1, which is already
equivalent to [(name, dtype, (n,)] / "(n,)type").
https://docs.scipy.org/doc/numpy/release.html
Así con tu expresión:
In [123]: np.dtype([("qint8", np.int8, 1)])
/usr/local/bin/ipython3:1: 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''.
#!/usr/bin/python3
Out[123]: dtype([(''qint8'', ''i1'')])
In [124]: np.dtype([("qint8", np.int8, (1,))])
Out[124]: dtype([(''qint8'', ''i1'', (1,))])
In [125]: np.dtype([("qint8", np.int8)])
Out[125]: dtype([(''qint8'', ''i1'')])
In [126]: np.dtype([("qint8", np.int8, 2)])
Out[126]: dtype([(''qint8'', ''i1'', (2,))])
In [127]: np.__version__
Out[127]: ''1.17.0''
Si está utilizando TF 2.0, una solución rápida sería degradar su numpy a 1.16.4. (Usé 1.17 y recibí los mismos mensajes de advertencia).
1. pip uninstall numpy
2. pip install numpy==1.16.4
Ver here (gracias a ymodak)