TensorFlow 1.10.1をインストールしましたが、TensorFlowをインポートしようとすると、TensorFlowバージョン1.10.0が必要だと言われました。したがって、インストールすると、次の警告が表示されます。
>>> 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)])
これは単なる警告であり、エラーではありません。これは、現在のnumpy librayバージョンがtensorflowバージョンと互換性がないために発生します。 numpyバージョンをダウングレードする必要があります。
tensorflow 1.10.0
には要件numpy<=1.14.5,>=1.13.3
、ただしより高いバージョンがインストールされている必要があります(この警告メッセージは最新のnumpyバージョン1.17.0で発生します)。
TF 2.0を使用している場合、簡単な解決策はnumpyを1.16.4にダウングレードすることです。 (私は1.17を使用し、同じ警告メッセージを受け取りました)。
1. pip uninstall numpy
2. pip install numpy==1.16.4
参照 ここ (ymodakに感謝)
pip install "numpy<1.17"
Numpyバージョンに戻すには1.16.4
最新のnumpyリリースノート(1.17)には以下が含まれます。
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
したがって、あなたの表現で:
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'
私のlinuxラップトップでpython3 v3.6のtensorflowと同じ問題がありました
実際には、2つのファイルのいくつかの行を変更する必要があります。
1
〜/ .local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py
あなたの場合:
C:\Users\PC\Anaconda3\envs\tut\lib\site-packages\tensorflow\python\framework\dtypes.py
今、このコードを変更します:(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)])
このコードによって:
_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,))])
このファイルでも同じことをする必要があります:
2
〜/ .local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py
あなたの場合:
C:\Users\PC\Anaconda3\envs\tut\lib\site-packages\tensorboard/compat/tensorflow_stub/dtypes.py
そしてそれは動作します。
TensorFlowのバージョンがnumpyと互換性がないために発生しています。 numpyの以前のバージョンを再インストールしてみてください。私の場合、私は1.16.4を試しました:pip install numpy == 1.16.4
しかし、最初に、実行中のすべてのカーネルをシャットダウンし、次のコマンドでnumpyをアンインストールする必要があります:pip uninstall numpy