python python-3.x numpy tensorflow artificial-intelligence

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)