web-dev-qa-db-fra.com

"synonyme de type est obsolète; dans une future version de numpy, il sera compris comme (type, (1,)) / '(1,) type'." problème dans TensorFlow

J'ai installé TensorFlow 1.10.1 mais quand j'ai essayé d'importer TensorFlow, il m'a dit que j'avais besoin de TensorFlow version 1.10.0. Ainsi, je l'ai installé et maintenant je reçois les avertissements suivants:

>>> 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)])
43
Emilijus052

C'est juste un avertissement, pas une erreur. Cela se produit car votre version actuelle de libray numpy n'est pas compatible avec la version tensorflow. Vous devez rétrograder la version numpy.

tensorflow 1.10.0 a une exigence numpy<=1.14.5,>=1.13.3, mais vous devez avoir installé une version supérieure (ce message d'avertissement apparaît avec la dernière version numpy 1.17.0).

34
Anubhav Singh

Si vous utilisez TF 2.0 , une solution rapide serait de rétrograder votre numpy à 1.16.4. (J'ai utilisé 1.17 et j'ai reçu les mêmes messages d'avertissement).

1. pip uninstall numpy 
2. pip install numpy==1.16.4

Voir ici (merci à ymodak)

40
adhg
pip install "numpy<1.17"

Pour revenir à la version Numpy 1.16.4

7
Chandan Gupta

Les dernières notes de mise à jour de numpy (1.17) ont:

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

Ainsi avec votre expression:

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'
4
hpaulj

J'ai eu le même problème dans mon ordinateur portable Linux avec Tensorflow en Python3 v3.6

En fait, il vous suffit de modifier certaines lignes dans 2 fichiers:

  • 1

    ~/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py

dans ton cas :

C:\Users\PC\Anaconda3\envs\tut\lib\site-packages\tensorflow\python\framework\dtypes.py



changez maintenant ce code: (ligne 516)

_np_qint8 = np.dtype([("qint8", np.int8, 1)])
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])
_np_qint16 = np.dtype([("qint16", np.int16, 1)])
_np_quint16 = np.dtype([("quint16", np.uint16, 1)])
_np_qint32 = np.dtype([("qint32", np.int32, 1)])


# _np_bfloat16 is defined by a module import.

# Custom struct dtype for directly-fed ResourceHandles of supported type(s).
np_resource = np.dtype([("resource", np.ubyte, 1)])

par ce code:

_np_qint8 = np.dtype([("qint8", np.int8, (1,))])
_np_quint8 = np.dtype([("quint8", np.uint8, (1,))])
_np_qint16 = np.dtype([("qint16", np.int16, (1,))])
_np_quint16 = np.dtype([("quint16", np.uint16, (1,))])
_np_qint32 = np.dtype([("qint32", np.int32, (1,))])

# _np_bfloat16 is defined by a module import.

# Custom struct dtype for directly-fed ResourceHandles of supported type(s).
np_resource = np.dtype([("resource", np.ubyte, (1,))])

vous devez faire de même sur ce fichier:

  • 2

    ~/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py

dans ton cas :

C:\Users\PC\Anaconda3\envs\tut\lib\site-packages\tensorboard/compat/tensorflow_stub/dtypes.py

et ça marchera.

3
Sami_c137

Cela se produit car votre version de TensorFlow est incompatible avec numpy. Essayez de réinstaller les versions précédentes de numpy. Dans mon cas, j'ai essayé 1.16.4: pip install numpy == 1.16.4

Mais d'abord, vous devez arrêter tous les noyaux en cours d'exécution et désinstaller numpy avec: pip uninstall numpy

0
Amit Rautray